学习笔记,仅供参考,有错必纠 分页 分页是指在web页面有大量数据需要显示时,当一页的内容太多不利于阅读和不利于数据提取的情况下,可以分为多页进行显示; Django提供了一些类
学习笔记,仅供参考,有错必纠
分页
分页是指在web页面有大量数据需要显示时,当一页的内容太多不利于阅读和不利于数据提取的情况下,可以分为多页进行显示;
Django提供了一些类管理分页的数据 , 即将数据分在不同页面中,并带有上一页/下一页的链接;
这些类位于django/core/paginator.py文件中。
Paginator对象
- Paginator对象的构造方法
#object_list 对象列表,比如models.Book.objects.all()
#per_page 每页数据个数,比如10
该构造函数的返回值为一个分页对象
- Paginator属性
#对象总数
num_pages
#页面总数
page_range
#从1开始, 用于记录当前面码数
per_page
#每页最大个数
- Paginator方法
#参数 number为页码信息(从1开始)
#返回当前number页对应的页信息
#如果提供的页码不存在,抛出InvalidPage异常
- Paginator异常exception
#当向page()传入一个无效的页码时抛出
PageNotAnInteger
#当向page()传入一个不是整数的值时抛出
EmptyPage
#当向page()提供一个有效值,但是那个页面上没有任何对象时抛出
Page对象
调用Paginator对象的page()方法,将返回Page对象,不需要我们手动构造。
- Page对象属性
#当前页上所有对象的列表
number
#当前页的序号(从1开始)
paginator
#当前page对象相关的Paginator对象
- Page对象方法
#如果有下一页返回True
has_previous()
#如果有上一页返回True
has_other_pages()
#如果有上一页或下一页返回True
next_page_number()
#返回下一页的页码,如果下一页不存在,抛出InvalidPage异常
previous_page_number()
#返回上一页的页码,如果上一页不存在,抛出InvalidPage异常
len()
#返回当前页面对象的个数
- 注意事项
Page对象是可迭代对象,可以用for语句来访问当前页面中的每个对象。