我在jinja中有以下for循环:
<table>
<thead>
<td>Stock</td>
<td>Shares</td>
<td>Total</td>
</thead>
<tbody>
{% for dict in rows2 %}
<tr>
{% for key, value in dict.items() %}
<td> {{value}} </td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
从我的烧瓶应用程序获取数据,特别是从以下行:
rows2 = db.execute("SELECT stock, amount, total_value FROM portfolio WHERE id = :id", id = session.get("user_id"))
现在,如果我将rows2打印到控制台,我实际上得到了我想要的东西,就像这样:
[{'stock': 'AAPL', 'amount': 1, 'total_value': 676.4}, {'stock': 'BB', 'amount': 1, 'total_value': 10.53}, {'stock': 'IBM', 'amount': 1, 'total_value': 144.99}]
但网页中的表格仅显示标题部分,实际数据部分留空!为什么会这样?
干杯!
答案 0 :(得分:1)
根据您的评论,我认为罪魁祸首在于您致电render_template()
。您不仅需要传递模板名称,还需要模板中使用的变量。 See here for the flask-docs
所以你应该真的在做
return render_template("portfolio.html", rows2=rows2)
...左侧是模板中的名称,右侧是您在逻辑中指定的变量。
答案 1 :(得分:0)
在items()之后省略():
{% for key, value in dict.items %}
....
{% endif %}