我的模板包含 2 个 {{var1}} 和 {{var2}} 占位符。 如果我只为 var1: value1 设置变量,那么 {{var2}} 也会被空字符串替换。但我想要 {{var2}} 而不是空字符串
代码片段:
var = {var1:value1}
tmp = Template(f.read(),start="{{",end="}}")
data = tmp.render(var)
最佳答案
您可以在设置 var1 和 var2 时通过回退分配来完成此操作:
var1 = value1 if value1 else "{{var1}}"
var2 = value2 if value2 else "{{var2}}"
var = {"var1":var1, "var2":var2}
tmp = Template(f.read(),start="{{",end="}}")
data = tmp.render(var)
或者您可以在 Django 模板中执行此操作,例如:
{% if var1 %}
{{ var1 }}
{% else %}
{% templatetag openvariable %} var1 {% templatetag closevariable %}
{%endif%}
或者,如果您使用 Jinja2 进行模板化,则可以在 Jinja2 模板中执行此操作,如下所示:
{% if var1 %}
{{ var1 }}
{% else %}
{% raw %}
{{ var1 }}
{% endraw %}
{%endif%}
关于python - Jinja2 模板渲染 {{variable}} 代替空字符串(如果未设置变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54204375/