nei*_*_sw 4 python sqlalchemy flask flask-sqlalchemy
我正在按照 Corey Schafer 的教程使用 SQLAlchemy (flask-sqlalchemy) 制作一个基本的 Flask 网站。该网站使用包含用户和帖子的数据库。目前,我在首页上按从最旧到最新的顺序显示帖子,但我想以相反的顺序显示它们。我知道我可以使用Session.query.all().order_by(),但我想使用分页方法对结果进行分页,但我不知道该怎么做。
我的原始代码使用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)
Run Code Online (Sandbox Code Playgroud)
此代码可以很好地在多个页面中显示帖子,但我想反转查询的结果,以便可以以相反的顺序显示帖子。我知道order_by()方法,但我不知道如何使用它以及是否可以将它与paginate()方法一起使用。
您的答案是肯定的,您可以在对查询进行排序后使用分页order_by。按照降序排列,您可以将该方法传递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)
Run Code Online (Sandbox Code Playgroud)
我使用了 columnd id,但您可以按数据库中的任何列进行排序。
| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |