在使用flask进行开发的过程是不免要涉及到分页功能的开发,我使用的是flask_sqlalchemy
,对于继承自flask_sqlalchemy.Model
的类,都有一个paginate(page=None, per_page=None, error_out=True, max_per_page=None)
方法来获得一个flask_sqlalchemy.Pagination
对象。
下面我们来简单说明一下paginate
和Pagination
的使用。
paginate
paginate(page=None, per_page=None, error_out=True, max_per_page=None)
这边说明一下这个方法对应的参数:
page指定页码,从1开始
per_page每一页有几个项
error_out(默认为True)
是否抛出错误
当其为True时,在以下情况会抛出404
没有匹配项或者page不等于1
page比1小或者per_page是负数
page和per_page不是整数
当其为False时
page和per_page的默认值分别为20和1
max_per_page当指定了max_per_page时,per_page会受到这个值的限制
Pagination
Pagination是调用paginate方法后返回的对象。它拥有以下方法,我们可以通过它快速地实现分页的功能。
它拥有以下属性和方法。
has_next 是否还有下一页
has_prev是否还有下一页
items当前页的元素集合
**next(error_out=False)**返回下一页的Pagination对象
next_num下一页的页码
page当前页的页码
pages匹配的元素在当前配置一共有多少页
per_page每一页显示的元素个数
**prev(error_out=False)**上一页的Pagination对象
prev_num上一页的页码
query创建Pagination对象对应的query对象
total匹配的元素总数
链接:https://www.jianshu.com/p/a27b9f30a2ed