我正在使用flask和sqlalchemy在html页面中打印列表。代码如下 Python代码:
@app.route('/restaurants')
def showRestaurants():
restaurant = session.query(Restaurant.name)
return render_template('restaurants.html', restaurant = restaurant)
Html代码:
<ul>
{% for i in range(0,9) %}
<li>
<strong><a href="#">{% print(restaurant[i]) %}</a></strong>
</li>
{% endfor %}
</ul>
页:
(u'Urban Burger',)
(u'Super Stir Fry',)
(u'Panda Garden',)
(u'Thyme for That Vegetarian Cuisine ',)
(u"Tony's Bistro ",)
(u"Andala's",)
(u"Auntie Ann's Diner ",)
(u'Cocina Y Amor ',)
(u'State Bird Provisions',)
那么,我做错了什么?我有一个带有餐馆名称的数据库,想要列出它,但似乎无法对其进行解码。我已经尝试.encode()打印出一个错误,说变量编码没有定义,当我输入create_engine encoding =&#39; acsii&#39;什么都不做。我感谢任何帮助。
答案 0 :(得分:1)
SQLAlchemy的session.query
返回元组列表。因此,要显示每个餐馆的名称,您需要访问每个元组的第一个元素中的字符串。
<strong><a href="#">{% print(restaurant[i][0]) %}</a></strong>
答案 1 :(得分:0)
encode('ascii')将起作用,但您必须将其应用于unicode字符串。你现在遇到的问题是你要打印出一个不是字符串的元组。
相反,请尝试参考这样的餐馆:
restaurant[i][0].encode('ascii')
即使restaurant[i][0]
也可以正确呈现。