分页是指web页面有大量数据需要显示,为了阅读方便在每个页面中显示分布数据
优点:
方便阅读
减少数据提取量,减轻服务器压力
--Django提供了Paginator类可以方便的实现分页功能
--Paginator类位于‘django.core.paginator’模块中
Paginator对象
负责分页数据整体的管理
对象的构造方法
paginator=Paginator(object_list,per_page) -参数 -object_list需要分类数据的对象列表 -per_page每页数据个数 -返回值: -Paginator的对象
Paginator属性
-count:需要分页数据的对象总数
-num_pages:分页后的页面总数
-page_range:从1开始的range对象,用于记录当前页码数
-per_page 每页数据的个数
Paginator方法
paginator对象.page(number) -参数number为页码信息(从1开始) -返回当前number页对应的页信息 -如果提供的页码不存在,抛出InvalidPage异常
Paginator异常exception
InvalidPage:总的异常基类,包含以下两个异常子类 -PageNotAnInteger:当向page()传入一个不是整数的值时抛出 -EmptyPage:当向page()提供一个有效值 但是那个页面上没有任何对象时抛出
Page对象 定义
负责具体某一页的数据的管理
创建对象
Paginator对象的page()方法返回Page对象
page=paginator.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异常