如何添加分页查询以每页返回 10 个结果

Pao*_*aJ. 1 sqlalchemy

我需要向我的网络表单添加分页(目前我已从数据库返回所有内容,但现在太多了)。

    result = []
    session = Session()
    index = 1
    for user in session.query(UserModel).order_by(desc(UserModel.age)).all():
        result.append({'username' : user.username,
                       'nation' : user.nation,
                        'age' : user.age,
                         'rank' : index})
        index = index + 1
Run Code Online (Sandbox Code Playgroud)

我需要分页(每页 10 个结果,按年龄排序)。如何在查询中添加分页?

lau*_*rie 5

使用 limit(n) 和 offset(m) 从偏移量 m 获取接下来的 n 行。您的代码应如下所示:

result = []
session = Session()
index = 1
for user in session.query(UserModel).order_by(desc(UserModel.age)).offset(m).limit(n).all():
    result.append({'username' : user.username,
                   'nation' : user.nation,
                    'age' : user.age,
                     'rank' : index})
    index = index + 1
Run Code Online (Sandbox Code Playgroud)