Jinja2如果声明在vs中等于dict

时间:2014-03-06 23:19:03

标签: python if-statement jinja2

我是Jinja2的新手,并将其作为Flask的一部分使用。我在下面有两个陈述。那个“在”的人工作。 “等于”的那个不是。等于版本的语法错误如下所示。我很好奇为什么,就像平等版本写的方式,至少对我来说,更容易阅读。

{% if "SN" in P01["type"] %}
  {% include 'sn.html' %}
{% endif %}

{% if P01["type"] equals "SN" %}
  {% include 'sn.html' %}
{% endif %}

来自jinja2.exceptions.TemplateSyntaxError

的错误消息
  

TemplateSyntaxError:期望令牌'语句块结束',得到'等于'

谢谢。

1 个答案:

答案 0 :(得分:27)

在Jinja2中,您可以使用==代替equals,例如:

{% if P01["type"] == "SN" %}
  {% include 'sn.html' %}
{% endif %}

http://jinja.pocoo.org/docs/switching/#conditions

我很确定这就是你要找的东西,但是你应该注意到它与"SN" in P01["type"]有不同的含义,使用in是一个子串测试,所以例如{{1将是真的。