Jinja2模板渲染{{variable}}代替空字符串(如果未设置变量)

时间:2019-01-15 17:53:02

标签: python jinja2

我的模板包含2个{{var1}}和{{var2}}占位符。 如果仅将变量设置为var1:value1,则{{var2}}也将替换为空字符串。但是我想要{{var2}}而不是空字符串

代码段:

var = {var1:value1}
tmp = Template(f.read(),start="{{",end="}}")
data = tmp.render(var)

1 个答案:

答案 0 :(得分:0)

在设置var1和var2时,可以使用后备分配来做到这一点:

@jwt_required
def get_user_by_id(user_id: str) -> Dict[str, Any]:
    # returns user when using flask run, but not with gunicorn
    curr_user = get_current_user()

或者您可以在Django模板中完成此操作,

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)

或者,如果您使用的是Jinja2进行模板制作,则可以在Jinja2模板中执行以下操作:

{% if var1 %}   
    {{ var1 }}
{% else %}
    {% templatetag openvariable %} var1 {% templatetag closevariable %}
{%endif%}