问题:Jinja2 if 语句在 vs 上等于 dict

我是 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:预期标记“语句块结束”,得到“等于”

谢谢你。

解答

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

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

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

我很确定这就是您要查找的内容,但是您应该注意,这与"SN" in P01["type"]具有不同的含义,使用in是子字符串测试,因此例如"foo" in "foobar"将为 True。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐