Python中如何实现Django页面上展示固定的页码数-创新互联

这篇文章主要介绍了Python中如何实现Django页面上展示固定的页码数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联公司-专业网站定制、快速模板网站建设、高性价比海宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海宁地区。费用合理售后完善,10余年实体公司更值得信赖。

如果页数太多的话,全部显示在页面上就会显得很冗杂

Python中如何实现Django页面上展示固定的页码数

可以在页面中显示规定的页码数

例如:

Python中如何实现Django页面上展示固定的页码数

book_list.html:




  
  书籍列表
  


 

 
  
    
    
      序号
      id
      书名
    
    
    
    {% for book in books %}
      
        {{ forloop.counter }}
        {{ book.id }}
        {{ book.title }}
      
    {% endfor %}
 
    
   
  
    
      
  •                    «                
  •       
  •         {{ page_html|safe }}       
  •       
  •                    »                
  •         
     

    views.py:

    from django.shortcuts import render
    from app01 import models 
    def book_list(request):
      # 从 URL 中取参数
      page_num = request.GET.get("page")
      print(page_num, type(page_num))
      page_num = int(page_num)
     
      # 定义两个变量保存数据从哪儿取到哪儿
      data_start = (page_num-1)*10
      data_end = page_num*10
     
      # 书籍总数
      total_count = models.Book.objects.all().count()
     
      # 每一页显示多少条数据
      per_page = 10
     
      # 总共需要多少页码来显示
      total_page, m = divmod(total_count, per_page)
     
      # 页面上最多展示的页码
      max_page = 11
      half_max_page = max_page // 2
     
      # 页面上展示的页码的开始页
      page_start = page_num - half_max_page
      # 页面上展示的页码的结束页
      page_end = page_num + half_max_page
     
      # 如果当前页减一半比 1 小
      if page_start <= 1:
        page_start = 1
        page_end = max_page
      # 如果当前页加一半比总页码还大
      if page_end > total_page:
        page_end = total_page
        page_start = total_page - max_page + 1
     
      # 如果还有数据
      if m:
        total_page += 1
     
      all_book = models.Book.objects.all()[data_start:data_end]
     
      # 拼接 html 的分页代码
      html_list = []
      for i in range(page_start, page_end+1):
        tmp = '
  • {0}
  • '.format(i)     html_list.append(tmp)     page_html = "".join(html_list)     return render(request, "book_list.html", {"books": all_book, "page_html": page_html})

    运行结果:

    Python中如何实现Django页面上展示固定的页码数

    感谢你能够认真阅读完这篇文章,希望小编分享的“Python中如何实现Django页面上展示固定的页码数”这篇文章对大家有帮助,同时也希望大家多多支持创新互联成都网站设计公司,关注创新互联成都网站设计公司行业资讯频道,更多相关知识等着你来学习!

    另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


    名称栏目:Python中如何实现Django页面上展示固定的页码数-创新互联
    标题URL:http://ybzwz.com/article/pshdd.html

    其他资讯