我的模板是这样的:
{% for order in orders %}
<li><h2>{{ order}}</h2>
{% endfor %}
我的路由功能是:
@app.route('/order_history')
def orderhistory():
db = get_db()
cur = db.execute('select * from order_items')
orders = cur.fetchall()
return render_template('order_history.html', orders = orders)
知道为什么我要获取行对象位置而不是db内容吗?
答案 0 :(得分:5)
您需要从行获取数据:
{% for order in orders %}
<li><h2>{{ order[0] }}</h2></li>
{% endfor %}
SQL查询始终返回包含列的行数据。以上假设您的SELECT
每行只返回一列。
如果您有多个列,则必须使用直接索引(order[1]
,order[3]
等)来解决这些问题,或者在该行上循环以显示列:
{% for order in orders %}
<li><h2>{{ order[0] }}</h2>
{% for column in order %}
{% if not loop.first %}{{ column }}<br />{% endif %}
{% endfor %}
</li>
{% endfor %}