当前位置 : 主页 > 编程语言 > python >

Django(part43)--分页

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考,有错必纠 分页 分页是指在web页面有大量数据需要显示时,当一页的内容太多不利于阅读和不利于数据提取的情况下,可以分为多页进行显示; Django提供了一些类

学习笔记,仅供参考,有错必纠


分页



分页是指在web页面有大量数据需要显示时,当一页的内容太多不利于阅读和不利于数据提取的情况下,可以分为多页进行显示;

Django提供了一些类管理分页的数据 , 即将数据分在不同页面中,并带有​​上一页/下一页​​的链接;

这些类位于django/core/paginator.py文件中。



Paginator对象



  • Paginator对象的构造方法
Paginator(object_list, per_page)
#object_list 对象列表,比如models.Book.objects.all()
#per_page 每页数据个数,比如10

该构造函数的返回值为一个​​分页对象​​



  • Paginator属性
count
#对象总数
num_pages
#页面总数
page_range
#从1开始, 用于记录当前面码数
per_page
#每页最大个数



  • Paginator方法
Paginator.page(number)
#参数 number为页码信息(从1开始)
#返回当前number页对应的页信息
#如果提供的页码不存在,抛出InvalidPage异常



  • Paginator异常exception
InvalidPage
#当向page()传入一个无效的页码时抛出
PageNotAnInteger
#当向page()传入一个不是整数的值时抛出
EmptyPage
#当向page()提供一个有效值,但是那个页面上没有任何对象时抛出



Page对象



调用Paginator对象的page()方法,将返回Page对象,不需要我们手动构造。



  • Page对象属性
object_list
#当前页上所有对象的列表
number
#当前页的序号(从1开始)
paginator
#当前page对象相关的Paginator对象



  • Page对象方法
has_next()
#如果有下一页返回True
has_previous()
#如果有上一页返回True
has_other_pages()
#如果有上一页或下一页返回True
next_page_number()
#返回下一页的页码,如果下一页不存在,抛出InvalidPage异常
previous_page_number()
#返回上一页的页码,如果上一页不存在,抛出InvalidPage异常
len()
#返回当前页面对象的个数



  • 注意事项

Page对象是可迭代对象,可以用for语句来访问当前页面中的每个对象。

上一篇:Django(part35)--多对多映射
下一篇:没有了
网友评论