Html 如何在jinja2模板中使用if语句

Html 如何在jinja2模板中使用if语句,html,jinja2,flask-sqlalchemy,Html,Jinja2,Flask Sqlalchemy,我想检查链接数据库中的一个条件是否为真,然后执行一些代码,但我得到的错误如下 jinja2.exceptions.TemplateSyntaxError:应为标记“:”,获得“}” {%for prod in prod%} {% for prod in prod %} {% if prod.sh == 1 %} <pre>Lines to come if true</pre> {% endif %} {% endfor %} {%if{{prod

我想检查链接数据库中的一个条件是否为真,然后执行一些代码,但我得到的错误如下

jinja2.exceptions.TemplateSyntaxError:应为标记“:”,获得“}”

{%for prod in prod%}
{% for prod in prod %}  
  {% if prod.sh == 1 %}
      <pre>Lines to come if true</pre>
  {% endif %}
{% endfor %}
{%if{{prod.sh}}为1%}
{% for prod in prod %}  
  {% if prod.sh == 1 %}
      <pre>Lines to come if true</pre>
  {% endif %}
{% endfor %}
如果这是真的,那就来吧 {%endif%}
{% for prod in prod %}  
  {% if prod.sh == 1 %}
      <pre>Lines to come if true</pre>
  {% endif %}
{% endfor %}
{%endfor%}
{% for prod in prod %}  
  {% if prod.sh == 1 %}
      <pre>Lines to come if true</pre>
  {% endif %}
{% endfor %}

有关Jinja2的详细文档,请访问

关于你的代码,我发现了两个问题

  • 您不应该将
    用于prod in prod
    ,而应该将
    用于products in products
    ,即将它们命名为不同的名称

  • 您不必在
    prod.sh
    周围放置尖括号。只有在HTML代码中直接引用变量时,才能执行此操作

  • 因此,工作代码可能看起来像:

    {%for prod in prod%}
    
    {% for prod in prod %}  
      {% if prod.sh == 1 %}
          <pre>Lines to come if true</pre>
      {% endif %}
    {% endfor %}
    
    {%如果prod.sh==1%}
    {% for prod in prod %}  
      {% if prod.sh == 1 %}
          <pre>Lines to come if true</pre>
      {% endif %}
    {% endfor %}
    
    如果这是真的,那就来吧 {%endif%}
    {% for prod in prod %}  
      {% if prod.sh == 1 %}
          <pre>Lines to come if true</pre>
      {% endif %}
    {% endfor %}
    
    {%endfor%}
    {% for prod in prod %}  
      {% if prod.sh == 1 %}
          <pre>Lines to come if true</pre>
      {% endif %}
    {% endfor %}