Jinja2如果声明在vs中等于dict

Tim*_*ter 15 python if-statement jinja2

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

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

{% if P01["type"] equals "SN" %}
  {% include 'sn.html' %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

来自jinja2.exceptions.TemplateSyntaxError的错误消息

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

谢谢.

And*_*ark 31

在Jinja2中,您将使用==而不是equals,例如:

{% if P01["type"] == "SN" %}
  {% include 'sn.html' %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

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

我很确定这是你正在寻找的东西,但是你应该注意到它有一个不同的含义"SN" in P01["type"],使用in是一个子串测试,所以例如"foo" in "foobar"是True.