使用jinja2在html中查询数据库

时间:2019-07-19 07:12:35

标签: python-3.x flask flask-sqlalchemy

我有一个烧瓶应用。在一个视图中,我直接使用jinja2在html页面上进行查询,如下所示,并且效果很好

<td> {{ pendlist.query.filter_by(bill_user=users.id).first().bill_balance}} </td>

但这是放置这样的查询的好习惯吗?性能将对此产生什么影响?

1 个答案:

答案 0 :(得分:0)

根据Jinga文档:

  

毫无疑问,您应该尝试从模板中删除尽可能多的逻辑。 Source: FAQ Jinga

然后您不应该。因为您无法控制结果。 Jina并非为此而删减。它并没有实现所有的运算符表达式。您可能会减慢该过程。 仅仅因为它起作用并不意味着就应该这样做。

这样做更合理:

# 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)