分页
在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
对象。
看文章不过瘾?还有免费的视频教程,让你学起来更轻松:https://www.zhiliaoketang.cn/course/detail/4.html
网友评论