>>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count 4 >>> p.num_pages 2 >>> p.page_range [1, 2] >>> page1 = p.page(1) >>> page1 <Page 1 of 2> >>> page1.object_list ['john', 'paul'] >>> page2 = p.page(2) >>> page2.object_list ['george', 'ringo'] >>> page2.has_next() False >>> page2.has_previous() True >>> page2.has_other_pages() True >>> page2.next_page_number() 3 >>> page2.previous_page_number() 1 >>> page2.start_index() # The 1-based index of the first item on this page 3 >>> page2.end_index() # The 1-based index of the last item on this page 4 >>> p.page(0) ... EmptyPage: That page number is less than 1 >>> p.page(3) ... EmptyPage: That page contains no results Note
带两个构造参数,一个就是数据的集合,另外一个表示每页放几个数据python
Paginator(object_list, per_page, orphans=0, allow_empty_first_page=True)
必传参数django
object_listless
一个list,tuple,django的QuerySet,或者拥有``count()``或``__len__()``方法的 可分解对象。函数
per_pagethis
每一页最大的对象个数。spa
可选参数code
orphans对象
最后一页对象的最少数目,默认为0。 若是想避免最后一页显示太少。则能够使用这个值。 那么最后一页的数据,自动被前移一页。好比总共23个数据。每页显示 10.orphans=3 那么,第一页为10,第二页为13.索引
allow_empty_first_pageit
表示首页是否能够为空,若是是 False 并且``object_list`` 为空,那么会触发 EmptyPage 异常。
2)方法
Paginator.page(number)
根据索引number,返回一个’Page’对象,若是不存在,引发 InvalidPage异常
3)属性
Paginator.count
全部对象的总数, 尝试经过``object_list.count()``和``object_list.__len__()`` 取得
Paginator.num_pages
总共的页数
Paginator.page_range
页的范围,好比 [1, 2, 3, 4] 。
InvalidPage 异常
当页面不存在或者无效时,会引发``InvalidPage``异常,通常这个异常就够用,若是须要更 详细信息,还有``PageNotAnInteger``,``EmptyPage``可用:
PageNotAnInteger
page() 的参数非整数。
EmptyPage
page(x) ,第x页没数据。
上述两个都是 InvalidPage 的子类。 用一个简单的 except InvalidPage 就能够处理。
3.Page 类
1)构造函数
Page(object_list, number, paginator):
通常不需用户本身构造,经过`Paginator.page` 生成。
2)方法
Page.has_next()
若是下一页存在,返回True。
Page.has_previous()
若是前一页存在返回 True
Page.has_other_pages()
若是上一页面或者下一页存在,返回``True``
Page.next_page_number()
返回下一页的索引,这个函数比较傻(无论下一页是否存在,都是简单的+1)
Page.previous_page_number()
返回上一页的索引,其余同上
Page.start_index()
返回当前页,第一个对象的索引。
Page.end_index()
道理同上。
3)属性
Page.object_list
当前页对象列表
Page.number
当前页的索引