Python dict上vs等于中的Jinja2 if语句

Python dict上vs等于中的Jinja2 if语句,python,if-statement,jinja2,Python,If Statement,Jinja2,我对金甲二号还不熟悉,并把它作为烧瓶的一部分。下面我有两个陈述。带“in”的那个有效。带“equals”的那个不是。equals版本出现如下所示的语法错误。我很好奇为什么,至少对我来说,equals版本的书写方式更容易阅读 {% if "SN" in P01["type"] %} {% include 'sn.html' %} {% endif %} {% if P01["type"] equals "SN" %} {% include 'sn.html' %} {% endif %}

我对金甲二号还不熟悉,并把它作为烧瓶的一部分。下面我有两个陈述。带“in”的那个有效。带“equals”的那个不是。equals版本出现如下所示的语法错误。我很好奇为什么,至少对我来说,equals版本的书写方式更容易阅读

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

{% if P01["type"] equals "SN" %}
  {% include 'sn.html' %}
{% endif %}
来自jinja2.exceptions.TemplateSyntaxError的错误消息

TemplateSyntaxError:应为标记“语句块结束”,获得“等于”


谢谢。

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

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


我很确定这就是您要寻找的,但您应该注意,这与P01[“type”]中的
“SN”有不同的含义,在
中使用
是一个子字符串测试,因此,例如在“foobar”
中使用
“foo”将是正确的。

做我想做的事
可能更容易阅读。这并不意味着它应该(或可以)起作用。你真的在问“为什么Jinja不实现这个语法”?因为这个问题不太可能存在,部分原因是如果不传唤Armin Ronacher就很难回答。我正在努力学习。我不是说它应该或者不应该。我只是不明白。谢谢FJ。这就是我要找的。我必须遵循一个关于模板语言的老教程或示例,因为我只看到使用了“equals”这个词。