Flask_sqlalchemy之数据分页

在做项目中很多时候我们都需要分页,可能很多人都知道使用paginate进行分页,可是然后就不知道了,今天像大家介绍一下个paginate分页。paginate(self, page=None, per_page=None, error_out=True, max_per_page=None)
page:需要查询第几页的数据,默认值:1
源代码”””
if page is None:
try:
page = int(request.args.get(‘page’, 1))
except (TypeError, ValueError):
if error_out:
abort(404)

page = 1″””
per_page:每页数据量,默认值:20
源代码”””
if per_page is None:
try:
per_page = int(request.args.get(‘per_page’, 20))
except (TypeError, ValueError):
if error_out:
abort(404)

per_page = 20″””
error_out:当参数为True时,会有404响应,在page<1或per_page<0都会响应404
源代码”””
if page < 1:
if error_out:
abort(404)
else:
page = 1

if per_page < 0:
if error_out:
abort(404)
else:
per_page = 20″””
max_per_page:每页最大数据量,如果指定,则默认取其与per_page的最小值
源代码”””
if max_per_page is not None:
per_page = min(per_page, max_per_page)”””
其实今天我想写的并不是这几个参数,而是它的返回值,Pagination对象,既然他返回了一个Pagination对象,那么这个东西是什么,有什么用呢?Pagination(query, page, per_page, total, items):一个帮助分页的类
has_next:判断是否有下一页
has_prev:判断是否有上一页
next_num:返回下一页页码
prev_num:返回上一页页码
page :当前页码
pages:总页数
per_page:每一页的数据量
prev():返回Pagination上一页的对象
next():返回Pagination下一页的对象
items:返回当前页面项目,可遍历
iter_pages(left_edge = 2,left_current = 2,right_current = 5,right_edge = 2):迭代分页中的页码
好了,今天的内容我介绍完了,大家尝试一下吧。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理