我根本无法改变python unicode

时间:2018-01-12 00:24:39

标签: python html flask sqlalchemy

我正在使用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;什么都不做。我感谢任何帮助。

2 个答案:

答案 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]也可以正确呈现。