Flask 分页

Flask 分页

1.手动分页

# 1.手动翻页
# offset( ).Limit()
# 数据: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20#页码: page=1
# 每页显示数量: per_page=5
# page=1 : 1,2,3,4 ,5       =>  offset(e).limit(5)
# page=2 : 6,7,8,9,10       =>  offset(5 ).limit(5)
# page=3 : 11,12,13,14,15   =>  offset(10).limit(5)
# page=4 : 16,17,18,19,20   =>  offset(15).Limit(5)
#
# ...
# page=n :                  =>  offset((page-1 )*per_page ).limit(per_page)
# page 页数 需要前端提供
# per_page 每一页显示的数量可以前端提供,也可以后端给默认值

2.使用paginate做分页

# 2.paginate对象
@blueprints1.route('/paginate/')
def get_paginate():
    '''
        page = request.args.get('page', 1)  # per_page:每页显示数据量
        per_page = request.args.get('per_page', 5)
        print(page, type(page)) # 需要注意获取导的是字符串,需要加int 强制转换
        print(per_page, type(per_page))
        # 2 <class 'str'>
        # 5 <class 'str'>
    '''
    # 页码:默认显示第一页
    page = int(request.args.get('page', 1))  
    # per_page:每页显示数据量
    per_page = int(request.args.get('per_page', 5))
    p = User.query.paginate(page=page, per_page=per_page, error_out=False)  # 返回一个paginate对象

    # paginate对象的属性:
    #     items:返回当前页的内容列表  返回列表
    print(p.items)
    #     has_next:是否还有下一页  返回True或False
    print(p.has_next)
    #     has_prev:是否还有上一页  返回True或False
    print(p.has_prev)
    #     next(error_out=False):返回下一页的Pagination对象
    print(p.next(error_out=False))  # p.next(error_out=False).items 可以获取到下一页的数据内容
    #     prev(error_out=False):返回上一页的Pagination对象
    print(p.prev(error_out=False))  # prev(error_out=False).items 可以获取到上一页的数据内容
    #     page:当前页的页码(从1开始)
    print(p.page)
    #     pages:总页数
    print(p.pages)
    #     per_page:每页显示的数量
    print(p.per_page)
    #     prev_num: 上一页页码数
    print(p.prev_num)
    #     next_num: 下一页页码数
    print(p.next_num)
    #     total:查询返回的记录总数
    print(p.total)
    return 'success!'


'''
paginate对象的属性:
    items:返回当前页的内容列表
    has_next:是否还有下一页
    has_prev:是否还有上一页
    next(error_out=False):返回下一页的Pagination对象prev(error_out=False):返回上一页的Pagination对象
    page:当前页的页码(从1开始)
    pages:总页数
    per_page:每页显示的数量
    prev_num: 上一页页码数
    next_num: 下一页页码数
    total:查询返回的记录总数
'''


posted @ 2023-07-03 16:03  春游去动物园  阅读(99)  评论(0编辑  收藏  举报