我正在关注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
,但是您可以按数据库中的任何列进行排序。