Найти - Пользователи
Полная версия: Bottle проблема с шаблонами и русскими буквами в UTF8
Начало » Web » Bottle проблема с шаблонами и русскими буквами в UTF8
1
jingvar
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)
dealers.tpl
<html>

<head>
<title>{{title}}</title>
</head>
<body>
<ul>

%for name in names:
<li>{{name[1]}}</li>

%end
</ul>
</body>
</html>
{{name}}
Собственно имею ошибку
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-7: ordinal not in range(128)

если сделать
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
То все ОК
jingvar
Лечится в шаблоне так: name.encode('utf-8')

Но как глобально задать не понятно.
o7412369815963
шаблоны работают с символами (unicode), а не с “массивом байт” (utf8,cp1251…) ;)

ЗЫ: в ботле можно использовать разные виды шаблонов, я юзаю jinja2
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB