首页 > 解决方案 > 烧瓶分页查询示例?

问题描述

我在这里关注烧瓶分页教程:http: //flask.pocoo.org/snippets/44/

我只是对这段代码感到困惑:

from flask import redirect

PER_PAGE = 20

@app.route('/users/', defaults={'page': 1})
@app.route('/users/page/<int:page>')
def show_users(page):
    count = count_all_users()
    users = get_users_for_page(page, PER_PAGE, count)
    if not users and page != 1:
        abort(404)
    pagination = Pagination(page, PER_PAGE, count)
    return render_template('users.html',
        pagination=pagination,
        users=users
    )

正如您在下面看到的,count 是一个函数 count_all_users(),我应该查询 users 表的所有行的计数吗?下面是变量用户,我只是没有得到这个代码:

users = get_users_for_page(page, PER_PAGE, count)

我该如何对此进行查询?这附近有样品吗?我只是很难找到一个。我正在使用 postgresql,如果您能帮助我为此构建一个逻辑查询,我将不胜感激。

标签: pythonpython-3.xpostgresqlflask

解决方案


这是一个示例代码,每页返回 4 个项目,当前页码为 1。片段上使用的 Pagination 类是自定义的,FLask-SQLAlchemy 的 Pagination要好得多。

@app.route('/result', methods=['GET', 'POST'])
def result():
    results = Foo.query.paginate(per_page=4, error_out=True, page=1)
    return render_template('results.html', results=results)

推荐阅读