1.Paginator是什么?
Paginator为分页器,是django提供了一个来帮助你管理分页数据的新的类。
2.如何使用Paginator?
首先你要先导入Paginator
from django.core.paginator import Paginator
创建分页对象
paginator = Paginator(book_list, 2) #设置每一页显示几条 创建一个panginator对象
属性设置:
print(Paginator.count) #总数据量
print(Paginator.num_pages) #分页数
print(Paginator.page_range) #显示的是页数的标记 就是按钮的数目
print(page2.has_next()) #是否有下一页
print(page2.next_page_number()) #下一页的页码
print(page2.has_previous()) #是否有上一页
print(page2.previous_page_number()) #上一页的页码
print(paginator.count) #通过你创建的对象来调用pangnator的属性 这个是统计总数
print(paginator.num_pages) #因为你上面设置了每一页显示两条 这个分页就会是总数除去每一页的显示的数量
print(paginator.page_range)
book_list = paginator.page(1) #这个是对你的分页的数据进行取值 去除你的分过后的第一页
# book_list , paginator.page是取你的分页后的某一页
print(book_list)
附:Paginator类的解释,方法,属性
class Paginator(object):
def __init__(self, object_list, per_page, orphans=0,
allow_empty_first_page=True):
self.object_list = object_list
self.per_page = int(per_page)
self.orphans = int(orphans)
self.allow_empty_first_page = allow_empty_first_page
self._num_pages = self._count = None
1.根据其定义做出以下解释:
object_list:可以是列表,元组,查询集或其他含有 count() 或 len()方法的可切片对象。对于连续的分页,查询集应该有序,例如有order_by()项或默认ordering参数。
per_page:每一页中包含条目数目的最大值,不包括独立成页的那页。(见下面 orphans参数解释)。
orphans=0:当你使用此参数时说明你不希望最后一页只有很少的条目。如果最后一页的条目数少于等于orphans的值,则这些条目会被归并到上一页中(此时的上一页变为最后一页)。例如有23项条目, per_page=10,orphans=0,则有3页,分别为10,10,3.如果orphans>=3,则为2页,分别为10,13。
allow_empty_first_page=True: 默认允许第一页为空。
2.类方法:
Paginator.page(number):根据参数number返回一个Page对象。(number为1的倍数)
3.类属型:
Paginator.count:所有页面对象总数,即统计object_list中item数目。当计算object_list所含对象的数量时, Paginator会首先尝试调用object_list.count()。如果object_list没有 count() 方法,Paginator 接着会回退使用len(object_list)。
Pagnator.num_pages:页面总数。
pagiator.page_range:页面范围,从1开始,例如[1,2,3,4]。