【发布时间】:2021-08-21 10:37:52
【问题描述】:
我正在使用 SQL-alchemy 和 Python 创建一个 Flask 博客。该博客是一个食谱博客,用户可以在其中对食谱进行评分。我得到了所有的评级,但我也想得到平均评级。到目前为止我已经尝试过了,但我无法让它工作......
在我的 HTML 中:
<div id="recipe" class="row">
<div class="col">
<ul class="list-group">
<li class="list-group-item"><strong>Average Rating: </strong>{{ post.critic_avg }}</li>
</ul>
</div>
在我的路线文件中:
@app.route("/recipes/<int:recipe_id>")
def recipe(recipe_id):
recipe = Recipe.query.get_or_404(recipe_id)
form = RatingForm()
critic_avg = db.session.query(func.avg(Rating.rating)).all()
return render_template('recipe_page.html', title=recipe.title, post=recipe, form=form, critic_avg=critic_avg)
在我的模型中:
class Rating(db.Model):
id = db.Column(db.Integer, primary_key=True, nullable=False)
rating = db.Column(db.Integer, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
user = db.relationship(User, backref=db.backref('ratings', lazy=True))
recipe_id = db.Column(db.Integer, db.ForeignKey('recipe.id'), nullable=False)
recipe = db.relationship(Recipe, backref=db.backref('ratings', lazy=True))
def __repr__(self):
return f"<Rating (id='{self.id}', rating='{self.rating}', user_id='{self.user_id}', recipe_id='{self.recipe_id}')>"
也许我做错了,很高兴得到一些指导:)
【问题讨论】:
-
问题与SQL有关吗?我没有看到上面的 SQL。
-
是的,我们正在使用 SQL 和 Python 做一个 FlaskBlog :)
-
如果您需要 SQL 帮助,我们需要查看示例表数据和预期结果 - 全部为格式化文本,以及当前查询尝试。 IE。 minimal reproducible example.
-
critic_avg = db.session.query(func.avg(Rating.rating)).all()的结果是什么?