python - Jinja 在渲染后保留模板标签

标签 python jinja2

本题的基本问题是如果模板标签没有在上下文中定义,如何保留模板标签。
例如:

from jinja2 import Template

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

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

非常感谢。

最佳答案

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 }}'

关于python - Jinja 在渲染后保留模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20120957/

相关文章:

python - 无需 IPC 通信即可共享对象

python - 为什么下面代码的输出是这样的

python - Flask - 防止多个打开的 mysql 连接?

filter - 如何过滤字符串中的某些元素

python - 如何使用 WTForms 呈现我的选择字段?

python - 检查 django 空表对象不起作用

python - 这是使用 groupby、apply 和 join 的最快/python 方式吗?

python - Jinja2 - 覆盖包含在内的 block 标记?

python - 删除 jinja 中的重复列表

python - 如何创建 jinja2 扩展?