Django分页器

分页器

1·提升用户体验,减少服务器的负担而开发
分为:
真分页:每点击下一页或者上一页,都会向数据库发送请求,并返回数据库(常用))
假分页:一次性读取所有数据,然后在内存中进行分页

原生实现
偏移加限制
offset limit
students = Student.objects.all()[per_page*(page-1): page * per_page]
封装实现
Paginator(分页工具)
对象创建
:Paginator(数据集,每一页数据数)
paginator = Paginator(students, per_page)
属性
count对象总数
num_pages:页面总数
page_range: 页码列表,从1开始 *
方法:
page(整数): 获得一个page对象
该方法的返回值类型是Page
常见错误:
InvalidPage:page()传递无效页码
PageNotAnInteger:page()传递的不是整数
Empty:page()传递的值有效,但是没有数据
Page(具体哪一页)
对象获得
通过Paginator的page()方法获得
属性
object_list: 当前页面上所有的数据对象
number: 当前页的页码值
paginator: 当前page关联的Paginator对象
方法
has_next() :判断是否有下一页
has_previous():判断是否有上一页
has_other_pages():判断是否有上一页或下一页
next_page_number():返回下一页的页码
previous_page_number():返回上一页的页码
len():返回当前页的数据的个数

应用场景:paginator对象 适用于 页码的遍历 eg 上一页 xxx 下一页
page对象 适用于 是否有上一页 下一页 上一页页码 下一页页码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值