jinja2 如何检索变量的值以在 if 语句中使用它

jinja2 how to retrieve the value of a variable to use it in an if statement jinja2

为了通过 mkdocs 使用 jinja 和 markdown 创建模板。到目前为止,我遇到了这个困扰我的问题。

我在 if 语句中使用了一个变量,以便在条件为真时用一些特定信息填充 table

假设我对 env1 和 env2 有不同的环境 (env1 env2 env3) table 的填充不需要 if 语句为真但是当涉及到 env3 时,条件必须是true 所以可以填充 table。

我的模板是这样的

#{{env}}

##servers

{% if {{env}} = 'env3' %}

|             | IP | FQDN |
|-------------|----|------|
|             |    |      |

{% for node in server.nodes %}|{{node.id}}|{{node.ip}}|{{node.fqdn}}|
{% endfor %} {% for node in server.class.nodes %}|classe{{node.id}}|{{node.ip}}|{{node.fqdn}}|
{% endfor %}

{% else %}

|             | IP | FQDN |
|-------------|----|------|
|  servertype1 | {{server.servertype1.ip}} |      |
|  servertype2 | {{server.servertype2.vip}} |      |
{% for node in server.specific.nodes %}|specific{{node.id}}|{{node.ip}}|{{node.fqdn}}|
{% endfor %} {% for node in server.class.nodes %}|classe{{node.id}}|{{node.ip}}|{{node.fqdn}}|
{% endfor %}
{% endif %}

要恢复,我很难检索 {{env}} 的值(标题中的值,因为 mkdocs 正确生成了它)以便在 if 语句中使用它,所以当涉及到env3 的特定页面 table 显示了适当的信息。

这是我得到的错误:

jinja2.exceptions.TemplateSyntaxError: expected token ':', got '}'

我尝试了很多不同的语法变体,但结果还是一样。

我欢迎所有线索或提示来解决这个问题。

好吧,我找到了!

我只需要调整我的 if 语句语法而不是


{% if {{env}} = 'env3' %}

我不得不这样说:

{% if env == "env3" %}

缺少等号和引号而不是 ' ' 加上 env 中的括号我不得不删除它们