这是我用来datetime
在 Jinja2中格式化 a 的代码
# -*- encoding=utf-8
import jinja2
import datetime
now = datetime.datetime.utcnow()
print jinja2.Template(u'''Hello {{ date.strftime('%Y 年 %m 月') }}!''').render(date=now)
的参数中有一些非 ASCII 字符('年月')date.strftime
。Jinja2 抱怨说
Traceback (most recent call last):
File "test.py", line 8, in <module>
print jinja2.Template(u'''Hello {{ date.strftime('%Y 年 %m 月') }}!''').render(date=now)
File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 894, in render
return self.environment.handle_exception(exc_info, True)
File "<template>", line 1, in top-level template code
UnicodeEncodeError: 'ascii' codec can't encode character u'\u5e74' in position 3: ordinal not in range(128)
然后我将其更改为
print jinja2.Template(u'''Hello {{ date.strftime(u'%Y 年 %m 月') }}!''').render(date=now)
(注意前面的 'u' '%Y 年 %m 月'
)但是 Jinja2 似乎不处理 Python unicode 文字。它抱怨说
Traceback (most recent call last):
File "test.py", line 8, in <module>
print jinja2.Template(u'''Hello {{ date.strftime(u'%Y 年 %m 月') }}!''').render(date=now)
File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 831, in __new__
return env.from_string(source, template_class=cls)
File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 769, in from_string
return cls.from_code(self, self.compile(source), globals, None)
File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 493, in compile
self.handle_exception(exc_info, source_hint=source)
File "<unknown>", line 1, in template
jinja2.exceptions.TemplateSyntaxError: expected token ',', got 'string'
有人可以告诉我正确的方法吗?提前致谢。