Jinja在渲染后留下模板标签

时间:2013-11-21 12:24:43

标签: python jinja2

本主题的基本问题是如果未在上下文中定义模板标记,如何保留模板标记 例如:

from jinja2 import Template

template = Template('User {{Name}} have received {{count}} mails')
result = template.render({'count': 30})

在这种情况下,jinja会将{{Name}}替换为'',
如何让jinja在模板中留下{{Name}}而不是''。

非常感谢。

1 个答案:

答案 0 :(得分:3)

jinja2.Environment构造函数接受undefined参数,以控制此情况下的行为。默认情况下,jinja2.Undefined不输出任何内容,但您也可以使用jinja2.DebugUndefined或编写自己的实现。

例如:

env = jinja2.Environment(undefined=jinja2.DebugUndefined)
t = env.from_string("{{foo}}{{bar}}")
t.render(foo=123)  # will print u'123{{ bar }}'