flask - 分页

利用paginate 对象:


  • views.py处理分页的业务逻辑

    @stu.route('/stupage/')
    def stu_page():
        # page定义当前页码
        page = int(request.args.get('page',1))
        # per_page定义每页显示的条数
        per_page = int(request.args.get('per_page', 10))
        # 是个对象paginate:<flask_sqlalchemy.Pagination object>
        paginate = Student.query.order_by('-s_id').paginate(page, per_page, error_out=False)
        # 必要步骤
        paginate = Student.query.order_by('-s_id').paginate(page, per_page, error_out=False)
        # 获取全部学生对象
        stus = paginate.items  
        return render_template('stupage.html',paginate=paginate, stus=stus)
    
  • templates中相关操作:

    {% for stu in stus %}
    学生id:{{stus.s_id}}
    学生姓名:{{stus.s_name}}
    学生年龄:{{stu.s_age}}
    <br>
    {% endfor %}    
    
    总共把表格中的记录分了几页{{paginate.pages}}
    当前页码{{paginate.page}}  这个是上面传入的
    表格中总共多少条记录{{paginate.total}}
    
    上一页的页码{{paginate.prev_num}}
    下一页的页码{{paginate.next_num}}
    if has_prev
    if has_next
    
    循环出页码:
    
        {% for i in paginate.iter_pages() %}
            {{i}}
    
        {% endfor %}
    
  • 给request请求传入参数的方式。利用request.args.get(‘page’, 1(自定义找不到默认值))

    <a href='/stu/stupage/?page={{paginate.prev_num}}'>上一页:{{paginate.prev_num}}
    </a>
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值