# 手动做分页
persons = Person.query.offset((page-1)) * per_page).limit(per_page)
# 1.手动翻页
# offset().limit()
# 数据: 1,2,3,4,5,6,7,8,9,10
# 页码:page=1
# 每页显示数量: per_page=5
# page=1: 1,2,3,4,5 => offset(0).limit(5)
# page=2: 6,7,8,9,10 => offset(5).limit(5)
# page=n: ... => offset((page-1)*per_page).limit(per_page)
# 使用paginate做分页
persons = Person.query.paginate(page=page,per_page=per_page,error_out=Flase).items
paginate对象的属性:
items:返回当前页的内容列表
has_next: 是否还有下一页
has_prev: 是否还有上一页
next(error_out=Flase): 返回下一页的Pagination对象
prev(error_out=Flase): 返回上一页的Pagination对象
page: 当前页的页码(从1开始)
pages:总页数
per_page: 每页显示的数量
prev_num: 上一页页码数
next_num: 下一页页码数
query: 返回创建该Pagination对象的查询对象
total: 查询返回的记录总数
# 2.paginate对象
@blue.route('/paginate/')
def get_pageinate():
# 页码:默认显示第一页
page = int(request.args.get('per_page', 1)) # 前端传过来的的page类型是字符串,所以需要int强转
# per_page: 每页显示数据量
per_page = int(request.args.get('per_page', 5)) # 前端传过来的per_page类型是字符串,所以需要int强转
# paginate()
p = User.query,paginate(page=page, per_page=per_page, error_out=Flase)
# paginate对象的属性:
items 返回当前页的内容列表
print(p.items)
print(page, type(page))
print(per_page, type(per_page))
标签:分页,Flask,paginate,per,limit,offset,Model,页码,page From: https://www.cnblogs.com/jiqiong/p/17452370.html