FlaskSQLAlchemy中的Pagination类型对象

FlaskSQLAlchemy中的Pagination类型对象。一个Query对象调用paginate方法就获得了Pagination对象。paginate方法传入了两个参数,一个是当前页,另一个是每一页最多显示多少博客。paginate的返回值为代表当前页的Pagination对象。一个Paginationi对象的常用属性有:

items 当前页面中的所有记录(比如当前页上有5条记录,items就是以列表形式组织这5个记录)
query 当前页的query对象(通过query对象调用paginate方法获得的Pagination对象)
page 当前页码(比如当前页是第5页,返回5)
prev_num 上一页页码
next_num 下一页页码
has_next 是否有下一页 True/False
has_prev 是否有上一页 True/False
pages 查询得到的总页数 per_page 每页显示的记录条数
total 总的记录条数
常用方法有:
prev() 上一页的分页对象Pagination
next() 下一页的分页对象Pagination
iter_pages(left_edge=2,left_current=2,right_current=5,right_edge=2)
iter_pages 用来获得针对当前页的应显示的分页页码列表。
假设当前共有100页,当前页为50页,按照默认的参数设置调用iter_pages获得的列表为:
[1,2,None,48,49,50,51,52,53,54,55,None,99,100]

`` #自动分页
@bule.route("/paginate/")
def get_paginate():
page = int(request.args.get('page',1))
per_page = int(request.args.get('per_page', 5))
# print(page,type(page))
# print(per_page, type(per_page))

# items当前页面中的所有记录(比如当前页上有5条记录,items就是以列表形式组织这5个记录)
# query当前页的query对象(通过query对象调用paginate方法获得的Pagination对象)
# page当前页码(比如当前页是第5页,返回5)
# prev_num上一页页码
# next_num下一页页码
# has_next是否有下一页True / False
# has_prev是否有上一页True / False
# pages查询得到的总页数
# per_page每页显示的记录条数
# total总的记录条数


p = User.query.paginate(page=page,per_page=per_page,error_out=False)
#items:返回当前页的内容列表
print(p.items)
#has_next是否还有下一页
print(p.has_next)
# has_prev是否还有上一页
return render_template("paginate.html")``
posted @ 2024-01-16 20:31  日月既往、不复可追。  阅读(127)  评论(0编辑  收藏  举报
Fork me on GitHub /*音乐*/ 1 2 3
4