最新消息:20210917 已从crifan.com换到crifan.org

[已解决]Jinja的template的html中根据不同条件去判断而输出显示不同内容

HTML crifan 3733浏览 0评论

已有:

<div class="item-inner">
  <div class="item-title label">是否公开</div>
  <div class="item-text">公开</div>
</div>

希望根据变量:

curEvent.is_public

去输出:

公开

不公开

模板设计者文档 — Jinja2 2.7 documentation

模板 | Flask之旅

Template Designer Documentation — Jinja2 Documentation (2.8-dev)

python – Jinja2 template not rendering if-elif-else statement properly – Stack Overflow

jinja template if condition

python – Jinja2 if statement in vs equals on dict – Stack Overflow

python – jinja2 – how to put a block in an if statement? – Stack Overflow

{% if curEvent.is_public %}
  <div class="item-text">公开</div>
{% else %}
  <div class="item-text">不公开</div>
{% endif %}

看看效果。

先去试试:

<div class="item-text">
    {% if curEvent.is_public %}
        公开
    {% else %}
        不公开
    {% endif %}
</div>

是可以的:

另外去试了试:

<div class="item-title label">是否公开</div>
      {% if curEvent.is_public %} {% else %}不{% endif %}
      公开
</div>

虽然逻辑上工作,但是实际上看起来很难看:

->然后后发现是自己不小心漏掉了:

<div class="item-text">

才导致显示的问题的。。。

[总结]

Jinja中,if else根据条件判断去输出不同内容,可以有三种方式:

              <div class="item-text">
                 {% if curEvent.is_public %}{% else %}不{% endif %}公开
              </div>

或:

                    <div class="item-text">
                        {% if curEvent.is_public %}
                            公开
                        {% else %}
                            不公开
                        {% endif %}
                    </div>

或:

              {% if curEvent.is_public %}
                <div class="item-text">公开</div>
              {% else %}
                <div class="item-text">不公开</div>
              {% endif %}

最后暂时用第二种:

              <div class="item-inner"> 
                <div class="item-title label">是否公开</div>
                <div class="item-text">
                    {% if curEvent.is_public %}
                        公开
                    {% else %}
                        不公开
                    {% endif %}
                </div>
            </div>

好处是:万一以后需要改不同条件的内容,方便去改。

转载请注明:在路上 » [已解决]Jinja的template的html中根据不同条件去判断而输出显示不同内容

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
88 queries in 0.187 seconds, using 20.12MB memory