在作项目中不少时候咱们都须要分页,可能不少人都知道使用paginate进行分页,但是而后就不知道了,今天像你们介绍一下个paginate分页。
paginate(self, page=None, per_page=None, error_out=True, max_per_page=None)segmentfault
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...code