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 中的括号我不得不删除它们
为了通过 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 中的括号我不得不删除它们