我是 Jinja2 的新手,将其用作 Flask 的一部分。我在下面有两个陈述。带有“in”的那个有效。带有“等于”的不是。 equals 版本出现语法错误,如下所示。我很好奇为什么至少对我来说,equals 版本的编写方式更易于阅读。
{% if "SN" in P01["type"] %}
{% include 'sn.html' %}
{% endif %}
{% if P01["type"] equals "SN" %}
{% include 'sn.html' %}
{% endif %}
来自 jinja2.exceptions.TemplateSyntaxError 的错误信息
TemplateSyntaxError: expected token 'end of statement block', got 'equals'
谢谢。
最佳答案
在 Jinja2 中,您将使用 ==
而不是 equals
,例如:
{% if P01["type"] == "SN" %}
{% include 'sn.html' %}
{% endif %}
http://jinja.pocoo.org/docs/switching/#conditions
我很确定这就是您要查找的内容,但您应该注意,这与 P01["type"] 中的 "SN"
具有不同的含义,使用 in
是一个子字符串测试,因此例如 "foobar"中的 "foo"
将为 True。
关于python - Jinja2 if 语句在 vs equals on dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238265/