我有兴趣在多个步骤中呈现模板,或者将未定义变量的标记保留在Jinja2中。我相信这不仅意味着创建'UndefinedSilent'类(这样模板程序就不会因丢失数据而崩溃),而且还可以在标记丢失时使用适当的变量名来保留标记。
示例:假设上下文中包含名称=“ Test”,但是数量丢失。
Givet以下模板:
<p>{{name}} has {{quantity}}</p>
Run Code Online (Sandbox Code Playgroud)
渲染后,我需要模板变为:
<p>test has {{quantity}}</p>
Run Code Online (Sandbox Code Playgroud)
有人知道这是否可以实现吗?
谢谢。
在环境中为未定义的命名参数提供DebugUndefined显然可以解决问题。呈现的模板保留{{
from jinja2 import Environment, BaseLoader,DebugUndefined
rtemplate =Environment(loader=BaseLoader,undefined=DebugUndefined).from_string("{{ a }} is defined, but {{ b}} is undefined")
print(rtemplate.render({"a":"a"}))
#The result is:
a is defined, but {{ b }} is undefined
Run Code Online (Sandbox Code Playgroud)