【问题标题】:querying database in html using jinja2使用jinja2在html中查询数据库
【发布时间】:2019-07-19 07:12:35
【问题描述】:
我有一个烧瓶应用程序。在一个视图中,我直接使用 jinja2 在 html 页面上进行查询,如下所示,它也可以正常工作
<td> {{ pendlist.query.filter_by(bill_user=users.id).first().bill_balance}} </td>
但是这样进行查询是一个好习惯吗?对此会有什么性能影响?
【问题讨论】:
标签:
python-3.x
flask
flask-sqlalchemy
【解决方案1】:
根据 Jinga 文档:
毫无疑问,您应该尝试从模板中删除尽可能多的逻辑。 Source: FAQ Jinga
那么你不应该。因为你无法控制结果。 Jinga 不适合这个。它没有实现所有的运算符表达式。你可能会减慢这个过程。
仅仅因为它有效并不意味着它应该被完成。
这样做更合理:
# The logic is done upstream.
bill_balance = pendlist.query.filter_by(bill_user=users.id).first().bill_balance
# bill_balance is now just a simple value.
# You can check here if bill_balance whether or not this is correct.
# It may look like an empty list/string/None if it is not in your database.
# And you don't necessarily want to post it like that.
return render_template("my_template.html", bill_balance=bill_balance)