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):迭代分页中的页码

好了,今天的内容我介绍完了,大家尝试一下吧。
有关iter_pages遍历问题,请参考我的另一篇文章:https://segmentfault.com/a/11…

    原文作者:二十一
    原文地址: https://segmentfault.com/a/1190000017719636
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞