zoukankan      html  css  js  c++  java
  • [flask]分页显示列表

    添加分页支持的视图函数

    app.py

    @app.route('/search')
    def search():
        page = request.args.get('page', 1, type=int) #从查询字符串获取当前页数
        per_page = current_app.config['GOGOTEST_CASE_PRE_PAGE']#每页数量
        form = SearchForm()
        keyword = request.args.get('keyword')
        pagination = TestCase.query.filter_by(creater=keyword).paginate(page, per_page=per_page)#分页对象当前页数的记录列表
        search_result = pagination.items#当前页数的记录列表
        if search_result:
            return render_template('auto_test_case.html', pagination=pagination, cases=search_result, form=form)
        else:
            return 'Not Found'

    注意:

    在使用render_template将对象传给模板文件时,除了传递查询结果,不要忘记传递pagination对象

    知识点:

      tip1:

      Flask_SQLAlchemy提供了简单的分页功能 ,使用paginate()查询方法可以获取case记录

    为了实现分页,把之前的查询执行函数all()换成了paginate(),它接收的两个最主要的参数是page和per_page

    page:当前请求的页数

    per_page:设置每页返回的记录数量,为了方便统一修改,这个值从配置变量GOGOTEST_CASE_PRE_PAGE获取

    也可以直接指定它的值:

    per_page=15

       tip2: 

      如果没有 指定page和per_page参数,Flask-SQLAlchemy会自动从查询字符串中获取对应查询参数(page和per_page)的值,如果没有获取到,默认的page=1,默认的per_page=20 

       tip3:

      调用 查询方法 paginate()会返回一个Pagination类实例,它包含分页的信息,我们将其称为分页对象.

    对这个pagination对象调用items属性会以列表的形式返回对应页数(默认为第一页)的记录.

    在访问这个url时,如果在URL后附加了查询参数page来指定页数,例如:http://xxxx/?page=2,这时发起请求调用items变量将会获得第2页的15条记录.

    pagination常用方法:

    items

    • 当前页的元素集合

    total

    • 匹配的元素总数

    参考:

    flask_sqlalchemy 中的 paginate 实现分页

  • 相关阅读:
    全面提价2499元起小米6发布:四曲陶瓷机身+骁龙835+变焦双摄(小米在设计上也多次获得红点最佳、iF金奖等72项工业设计大奖)
    VCL的通用属性,方法和事件 good
    抗日名将粟裕
    部署 Redis 群集
    Xamarin
    NET Core控制反转(IoC)
    C#开发Linux守护进程
    数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)
    ssm框架
    javascript面向对象之闭包
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11881049.html
Copyright © 2011-2022 走看看