在做项目中很多时候我们都需要分页,可能很多人都知道使用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):迭代分页中的页码
好了,今天的内容我介绍完了,大家尝试一下吧。
有关iter_pages遍历问题,请参考我的另一篇文章:https://segmentfault.com/a/11...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。