一. django自带的分页
此处以读取 UserInfo 表为例:
1.导入模块
from django.core.paginator import Paginator
2.读取信息
userlist = models.UserInfo.objects.all()
3.生成paginator对象
paginator = Paginator(userlist, 10) # 对象,每页多少条数据
说明:paginator的属性与方法
- 属性
object_list:返回所有页对象的的列表
per_page:每页显示条目数量
count:数据总个数
num_pages:总页数
page_range:总页数的索引范围,如: (1,10),(1,200)- 方法
page(第几页):page对象
4.生成page对象
page_1 = paginator.page(1) # 第一页的信息
说明:page的属性和方法
- 属性
object_list:返回当前页对象的的列表
number:返回当前页是第几页,从1开始
paginator:当前页对应的paginator对象- 方法
has_next():是否有下一页,有就返回Ture
next_page_number():返回值下一页页码
has_previous():是否有上一页,有就返回Ture
previous_page_number():返回值上一页页码
二. 自定义分页
实现原理:
我们用 ORM 获得表里面信息的时候,返回的是一个列表对象,我们可以使用列表的切片特性来对内容进行选取操作从而达到分页的效果。