分页
在Django中实现分页功能非常简单。因为Django已经内置了两个处理分类的类。分别是Paginator和Page。Paginator用来管理整个分类的一些属性,Page用来管理当前这个分页的一些属性。通过这两个类,就可以轻松的实现分页效果。以下对这两个类进行讲解。
Paginator类:
Paginator是用来控制整个分页的逻辑的。比如总共有多少页,页码区间等等。都可以从他上面来获取。
创建Paginator对象:
class Paginator(object_list, per_page, orphans=0, allow_empty_first_page=True),其中的参数解释如下:
object_list:列表,元组,QuerySet或者是任何可以做切片操作的对象。会将这个里面的对象进行分页。
per_page:分页中,一页展示多少条数据。
orphans:用来控制最后一页元素的个人如果少于orphans指定的个数的时候,就会将多余的添加到上一页中。
allow_empty_first_page:如果object_list没有任何数据,并且这个参数设置为True,那么就会抛出EmptyPage异常。
常用属性和方法:
Paginator.page(number):获取number这页的Page对象。
count:传进来的object_list总共的数量。
num_pages:总共的页数。
page_range:页码的列表。比如[1,2,3,4]。
Page类:
常用属性和方法:
has_next():是否还有下一页。
has_previous():是否还有上一页。
next_page_number():下一页的页码。
previous_page_number():上一页的页码。
object_list:在当前这页上的对象列表。
number:当前的页码。
paginator:获取Paginator对象。