django分页的写法,前端后端!

django分页的写法,前端后端!,第1张

概述  django有一个自带的分页,虽然功能很全面,但是不适合我应用的场景,所以自己写了一个代码 拿走不谢!      应用的场景 :     1.最好是 django中使用      使用方法:     要的数据是( quesset 类型的数据, 要跳转的页码,拼接的路径),返回字典 为什么返回一个字典?直接返回前端方便,适合我短期内使用,要是有其他需求你可以改一下     要使用的地方:直接{{

  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">&laquo;</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" >&raquo;</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分页的写法,前端后端!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1191714.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存