https://docs.djangoproject.com/en/3.2/topics/pagination/
Django 提供了高级和低级方法来帮助您管理分页数据——即,分成多个页面的数据,并带有“上一页/下一页”链接。
Paginator
类
在底层,所有分页方法都使用 Paginator
类.
可以为 Paginator()
提供列表/元组、Django QuerySet
或任何其他具有 count()
或 __len__()
方法的对象。
当确定传递的对象中包含的对象数量时, Paginator
将首先尝试调用 count()
,如果传递的对象没有 count()
方法,则使用 len()
。这允许 Django 的 QuerySet
等对象在可用时使用更高效的 count()
方法。
Paginator方法/属性
# 返回分页中所有数据的总数
pg.count
# 每页多少条数据
pg.per_page
# 总共有多少页
pg.num_pagess
# 返回某一页(返回的是一个Page()对象)
pg.page(<第几页>)
Page
类
方法/属性
# 返回Page类对应的paginator对象
p.paginator
# 当前页中的数据
p.object_list
# 是否有下一页
p.has_next()
# 是否有上一页
p.has_previous()
# 下一页页数
p.next_page_number()
# 上一页页数
p.previous_page_number()
直接上例子~
# 导入类
>>> from django.core.paginator import Paginator
# 按照每页2条数据来分页图书
>>> pg = Paginator(PeopleInfo.objects.all(), 2)
# 分页对象中数据的总数,这个就是你给定的PeopleInfo.objects.all()获取的数据总数
>>> pg.count
17
# 总有多少页
>>> pg.num_pages
9
# 拿到第一页对象Page
>>> page1 = pg.page(1)
>>> page1
<Page 1 of 9>
# 获取第一页中的数据
>>> page1.object_list
<QuerySet [<PeopleInfo: 郭靖>, <PeopleInfo: 黄蓉>]>
标签:Paginator,count,分页,一页,django,pg,使用,page
From: https://www.cnblogs.com/juelian/p/17561860.html