Форум сайта python.su
Bottle проблема с шаблонами и русскими буквами в UTF8
# -*- coding: utf-8 -*-
import os, datetime,sys,codecs,MySQLdb,math
db=MySQLdb.connect(...use_unicode=True,charset='utf8')
db.set_character_set('utf8')
cursor= db.cursor()
....
@route('/dealers')
def main_dealers():
cursor.execute('select * from dealer ')
data=cursor.fetchall();
return template('dealers', title= 'Dealers',names=data)
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<ul>
%for name in names:
<li>{{name[1]}}</li>
%end
</ul>
</body>
</html>
def main_dealers():
cursor.execute('select * from dealer ')
data=cursor.fetchall();
hu=u'<html> <head> </head> <body> <ul>'
for line in data:
hu=hu+'<li>'+line[1]+'<li>'
hu=hu+'</ul> </body></html>'
# return template('dealers', title= 'Dealers',names=data)
return hu
Офлайн
Лечится в шаблоне так: name.encode('utf-8')
Но как глобально задать не понятно.
Офлайн
шаблоны работают с символами (unicode), а не с “массивом байт” (utf8,cp1251…) ;)
ЗЫ: в ботле можно использовать разные виды шаблонов, я юзаю jinja2
Отредактировано (Апрель 6, 2010 16:19:02)
Офлайн