美文网首页Flask实践
flask_sqlalchemy 中的 paginate 实现分

flask_sqlalchemy 中的 paginate 实现分

作者: 1lin24 | 来源:发表于2019-01-07 17:15 被阅读2次

    在使用flask进行开发的过程是不免要涉及到分页功能的开发,我使用的是flask_sqlalchemy,对于继承自flask_sqlalchemy.Model的类,都有一个paginate(page=None, per_page=None, error_out=True, max_per_page=None)方法来获得一个flask_sqlalchemy.Pagination对象。

    下面我们来简单说明一下paginatePagination的使用。

    paginate

    paginate(page=None, per_page=None, error_out=True, max_per_page=None)
    这边说明一下这个方法对应的参数:

    • page
      • 指定页码,从1开始
    • per_page
      • 每一页有几个项
    • error_out(默认为True)
      • 是否抛出错误
      • 当其为True时,在以下情况会抛出404
        • 没有匹配项或者page不等于1
        • page1小或者per_page是负数
        • pageper_page不是整数
      • 当其为False
        • pageper_page的默认值分别为201
    • max_per_page
      • 当指定了max_per_page时,per_page会受到这个值的限制(不知道是什么场景下使用,求指点)

    Pagination

    Pagination是调用paginate方法后返回的对象。它拥有以下方法,我们可以通过它快速地实现分页的功能。

    它拥有以下属性和方法。

    • has_next
      • 是否还有下一页
    • has_prev
      • 是否还有下一页
    • items
      • 当前页的元素集合
    • next(error_out=False)
      • 返回下一页的Pagination对象
    • next_num
      • 下一页的页码
    • page
      • 当前页的页码
    • pages
      • 匹配的元素在当前配置一共有多少页
    • per_page
      • 每一页显示的元素个数
    • prev(error_out=False)
      • 上一页的Pagination对象
    • prev_num
      • 上一页的页码
    • query
      • 创建Pagination对象对应的query对象
    • total
      • 匹配的元素总数

    看完相信你大概能知道分页如何实现了吧。

    欢迎留言指点交流

    ReadMore

    相关文章

      网友评论

        本文标题:flask_sqlalchemy 中的 paginate 实现分

        本文链接:https://www.haomeiwen.com/subject/hjmurqtx.html