python - Jinja2 if 语句在 vs equals on dict

标签 python if-statement jinja2

我是 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/

相关文章:

python - 批量保存复杂对象 SQLAlchemy

python - Numpy 数组 - 附加命名列

r - 如果值存在于具有匹配 ID 的其他矩阵行中的任何位置,则使用 "1"-- R 填充单元格

带有 IF ELSE 语句的 BASH Shell 无限循环

javascript - 如何重构这一堆 if 语句?

Ansible:如果存在则包含文件,如果不存在则不执行任何操作

python - 如何在循环中重置 Python 中的一些函数变量

python - 如何根据pandas数据框中的非连续索引列表替换值?

python - 如何混淆 jinja2 中变量中的数据?例如变量 = "John Smith",我想要类似 "Odsv Wgtvs"的东西

yaml - YAML 中的 Ansible 整数变量