介绍
本篇文章为大家展示了使用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 %}
举例讲述分页功能的使用目的说明
现要实现如下功能