Flask_sqlalchemy之数据分页

28次阅读

共计 1100 个字符,预计需要花费 3 分钟才能阅读完成。

在做项目中很多时候我们都需要分页,可能很多人都知道使用 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): 迭代分页中的页码
好了,今天的内容我介绍完了,大家尝试一下吧。

正文完
 0