第一种:直接在查询语句中使用order_by
现在就用第一种方法实现刚才所说(最新注册的用户的拍在前面),最新注册的也就是时间最大的。代码如下
results = session.query(User).order_by(User.create_time.desc()).all()
print(results)
运行结果如下。
嗯,结果如我们所愿(时间按从大到小排列)。效果是实现了,还有没有其它法子(与此类似,在查询中实现排序)呢????答案是有,下面我们就试试另外一种法子。把表字段名作为字符串放在order_by里面就ok了,说干咱就干!
实例配置:
@app.route('/') def get_all_posts(): # result = db.session.execute(db.select(BlogPost)) result = db.session.query(BlogPost).order_by(BlogPost.date.desc()) # posts = result.scalars().all() posts = result.all() return render_template("index.html", all_posts=posts, current_user=current_user)
博客排列效果, 按照最新时间发布的排序
标签:sqlalchemy,flask,BlogPost,posts,session,result,排序,order From: https://www.cnblogs.com/weifeng1463/p/17697506.html