
django有一个自带的分页,虽然功能很全面,但是不适合我应用的场景,所以自己写了一个代码 拿走不谢!
应用的场景 :
1.最好是 django中使用
使用方法:
要的数据是( quesset 类型的数据,要跳转的页码,拼接的路径),返回字典 为什么返回一个字典?直接返回前端方便,适合我短期内使用,要是有其他需求你可以改一下
要使用的地方:直接{{ load 引用 }}
效果图:
使用的页码剧中飘红效果,就是后边的样式没有调好,我不专业,你自己调一下吧
1 """ 2 启动调用的函数是 my_HTML() 3 需要的参数是 4 param que: 一个querryset类型的数据 5 new_num_page: 要跳转的的页码 6 href:拼接路径 7 8 9 """10 def HTML(new_lis,new_num_page,page_num,href):11 """12 :param new_lis:13 :param new_num_page:14 :param page_num:15 :param href: 传入的拼接路径比如 /custorm/?page=16 :return:17 """18 page_HTML = ""19 page_pre_HTML = f‘<nav aria-label="Page navigation"><ul ><li><a href="{href}1" aria-label="PrevIoUs"><span aria-hIDden="true">首页</span></a></li><li><a href="{href}{new_num_page - 1}" aria-label="PrevIoUs"><span aria-hIDden="true">«</span></a></li>‘20 page_HTML += page_pre_HTML21 for i in new_lis:22 if i == str(new_num_page):23 page_HTML += f‘<li ><a href="{href}{i}" >{i}</a></li>‘24 else:25 page_HTML += f‘<li ><a href="{href}{i}" >{i}</a></li>‘26 27 pagenum_HTML = f‘<li><a href="{href}{new_num_page + 1}" aria-label="Next"><span aria-hIDden="true" >»</span></a></li><li><a href="{href}{page_num}" aria-label="pattern"><span aria-hIDden="true">尾页</span></a></li><li><span aria-hIDden="true" ><form action="" method="get" ><input type="text" placeholder="共:{page_num}页" name="page" ><input type="submit" value="跳转"></form></li></ul></nav>‘28 page_HTML += pagenum_HTML29 return page_HTML30 31 #收入数据,做成字典传出去32 def my_HTML(que,href,page_max_pIEce=10,page_tag_num=5):# param que: 一个querry类型的数据new_num_page: 新的页码 href:拼接路径33 """34 :param que: 一个querry类型的数据35 :param new_num_page: 新的页码36 href:拼接路径37 :param page_max_pIEce: 页面显示的最大条数38 :param page_tag_num: 页面显示的页码数 最好是奇数 轻易别改39 :return: 返回一个字典 携带切片好的querry 和 一个 网页的HTML 直接返回前段就可以用了40 """41 all_data_count = que.count()42 page_num,resID = divmod(all_data_count,page_max_pIEce) # 商数和余数43 if resID:44 page_num += 1 # 拿到了总页数45 page_all_lis = [str(i) for i in range(1,page_num + 1)]46 if new_num_page in page_all_lis:47 new_num_page = int(new_num_page)48 if new_num_page > 2 and new_num_page < page_num - 1:49 ret = HTML(page_all_lis[new_num_page-3:new_num_page+2],href)50 elif new_num_page <= page_tag_num:51 ret = HTML(page_all_lis[ 0:page_tag_num],href)52 elif new_num_page > page_num-2:53 ret = HTML(page_all_lis[page_num-page_tag_num:page_num],href)54 return {"que": que[(new_num_page - 1) * page_max_pIEce:new_num_page * page_max_pIEce],"new_HTML": ret}55 else:56 new_num_page=157 ret = HTML(page_all_lis[0:page_tag_num],href)58 return {"que": que[(new_num_page - 1) * page_max_pIEce:new_num_page * page_max_pIEce],"new_HTML": ret}VIEw Code 总结
以上是内存溢出为你收集整理的django分页的写法,前端后端!全部内容,希望文章能够帮你解决django分页的写法,前端后端!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)