Blask-sqlalchemy:尝试以相反的顺序使用query.paginate()



我正在关注Corey Schafer的教程,以使用Sqlalchemy(Blask-Sqlalchemy(制作基本的烧瓶网站。该网站使用包含用户和帖子的数据库。当前,我在从最旧到最新的首页上显示帖子,但我想以相反的顺序显示它们。我知道我可以使用 session.query.all((。P>

我的原始代码使用 session.query.paginate((

,但我想扭转结果。

目前,这是我的代码寻找主页路由的方式:

@app.route("/home")
def home(page=1):
    page = request.args.get('page', 1, type=int)
    posts = Post.query.paginate(page=page, per_page=5) # this line right here
    return render_template("home.html", posts=posts)

此代码可以在多个页面中显示帖子,但是我想扭转查询的结果,以便我可以反向显示帖子。我知道方法 order_by((,但我不知道如何使用它,以及我是否可以将其与 paginate((方法一起使用。

您的答案是,您可以使用order_by对查询进行分类后使用paginate。根据降序,您只需将方法desc()传递给您的order_by即可。

例如:

@app.route("/home")
def home(page=1):
    page = request.args.get('page', 1, type=int)
    posts = Post.query.order_by(Post.id.desc()).paginate(page=page, per_page=5) # this line right here
    return render_template("home.html", posts=posts)

我使用了columnd id,但是您可以按数据库中的任何列进行排序。

最新更新