有没有办法用jinja2做到这一点?

template = Template("{{ var1 }}{{ var2 }}")
rendered1 = template.render(var1=5) # "5-{{ var2 }}"
rendered2 = Template(rendered1).render(var2=6) # "5-6"

基本上,我希望能够对模板进行多次传递。当模板引擎在模板中发现一个不在上下文中的变量时,与其用空替换,还不如保持模板变量完整?如果不是jinja2,是否还有其他python模板库可以做到这一点?

最佳答案

您可以使用 DebugUndefined ,它保留失败的查找,作为 Undefined Typeundefined 环境参数的 0x2518122231343141 :

>>> from jinja2 import Template, DebugUndefined
>>> template = Template("{{ var1 }}-{{ var2 }}", undefined=DebugUndefined)
>>> rendered1 = template.render(var1=5) # "5-{{ var2 }}"
>>> print(rendered1)
5-{{ var2 }}
>>> rendered2 = Template(rendered1).render(var2=6) # "5-6"
>>> print(rendered2)
5-6

关于python - jinja2 模板的多次渲染?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12994028/

10-14 08:48