使用Django怎么实现分页功能

  介绍

本篇文章为大家展示了使用Django怎么实现分页功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Django提供了一个新的类来帮助你管理分页数据,这个类存放在<代码类=拔募ocutils文本”> Django/核心/paginator.py> class  Paginator(对象):   ,   def 才能;__init__ (object_list,自我,还以为,per_page,孤儿=0,   ,,,,,,,,allow_empty_first_page=True):   ,,,self.object_list =object_list   ,,,self.per_page =, int (per_page)   ,,,self.orphans =, int(孤儿)   ,,,self.allow_empty_first_page =allow_empty_first_page   ,   以前……

基本语法实例

# !/usr/bin/env  python   #,_ * _ 编码:utf-8  _ * _   ,   import 操作系统   ,   得到django.core.paginator  import  Paginator   objects =,(& # 39;约翰# 39;& # 39;保罗# 39;,& # 39;乔治# 39;,& # 39;林格# 39;,& # 39;露西# 39;,& # 39;meiry& # 39;, & # 39; checy& # 39;, & # 39;风# 39;,& # 39;流# 39;,& # 39;雨# 39;]& lt; br>   时间=p  Paginator(对象,3),#,3条数据为一页,实例化分页对象   print  p.count  #, 10,对象总共10个元素   print  p.num_pages  #, 4,对象可分4页   print  p.page_range  #, xrange(1, 5),对象页的可迭代范围   ,   时间=page1  p.page(1), #,取对象的第一分页对象   print  page1.object_list  #,第一分页对象的元素列表[& # 39;约翰# 39;,,& # 39;保罗# 39;,,& # 39;乔治# 39;】   print  page1.number  #,第一分页对象的当前页值,1   ,   时间=page2  p.page(2), #,取对象的第二分页对象   print  page2.object_list  #,第二分页对象的元素列表,(& # 39;林格# 39;,,& # 39;露西# 39;,,& # 39;meiry& # 39;】   print  page2.number  #,第二分页对象的当前页码值,2   ,   print  page1.has_previous(), #,第一分页对象是否有前一页,假的   print  page1.has_other_pages(), #,第一分页对象是否有其它页,真的   ,   print  page2.has_previous(), #,第二分页对象是否有前一页,真的   print  page2.has_next(), #,第二分页对象是否有下一页,真的   print  page2.next_page_number(), #,第二分页对象下一页码的值,3   print  page2.previous_page_number(), #,第二分页对象的上一页码值,1   print  page2.start_index(), #,第二分页对象的元素开始索引,4   print  page2.end_index(), #, 2分第页对象的元素结束索引,6

,官方解释在视图中的应用

得到django.core.paginator  import  Paginator,, EmptyPage, PageNotAnInteger   得到django.shortcuts  import 渲染   ,   def 清单(要求):   时间=contact_list 才能;Contacts.objects.all ()   时间=paginator 才能;Paginator (contact_list, 25), #, Show  25, contacts  per 页面   ,   page 才能=,request.GET.get(& # 39;页面# 39;)   尝试才能:   ,,,contacts =, paginator.page(页面)   except 才能;PageNotAnInteger:   ,,,#,If  page  is  not  an 整数,deliver  first 页面。   ,,,contacts =, paginator.page (1)   except 才能;EmptyPage:   ,,,#,If  page  is  out  of  range (如只9999),deliver  last  page  of 结果。   ,,,contacts =, paginator.page (paginator.num_pages)   ,   return 才能;渲染(请求,,& # 39;list.html& # 39;,,{& # 39;接触# 39;:,联系})

在模板的html模板中的应用

{%, for  contact 拷贝contacts  %}   ,,{#,Each “contact", is  a  Contact  model 对象只#}   ,,{{,contact.full_name | upper }} & lt; br /比;   ,,…   {%,endfor  %}   ,   & lt; div 类=皃agination"祝辞   & lt;才能span 类=皊tep-links"比;   ,,,{%,if  contacts.has_previous  %}   ,,,,,& lt; a  href=https://www.yisu.com/zixun/?页面={{联系人。先前previous_page_number}} ">   {% endif %}         {{联系人页面。}}{{contacts.paginator的数量。num_pages}}。         {%如果联系人。has_next %}      {% endif %}      

举例讲述分页功能的使用目的说明

现要实现如下功能

使用Django怎么实现分页功能