Python的Django架構中if標籤的相關使用

來源:互聯網
上載者:User
{% if %} 標籤檢查(evaluate)一個變數,如果這個變數為真(即,變數存在,非空,不是布爾值假),系統會顯示在 {% if %} 和 {% endif %} 之間的任何內容,例如:

{% if today_is_weekend %}  

Welcome to the weekend!

{% endif %}

{% else %} 標籤是可選的:

{% if today_is_weekend %}  

Welcome to the weekend!

{% else %}

Get back to work.

{% endif %}

Python 的“真值”

在Python和Django模板系統中,以下這些對象相當於布爾值的False

  • 空列表([] )
  • 空元組(() )
  • 空字典({} )
  • Null 字元串('' )
  • 零值(0 )
  • 特殊對象None
  • 對象False(很明顯)

提示:你也可以在自訂的對象裡定義他們的布爾值屬性(這個是python的進階用法)。

除以上幾點以外的所有東西都視為`` True``

{% if %} 標籤接受 and , or 或者 not 關鍵字來對多個變數做判斷 ,或者對變數取反( not ),例如: 例如:

{% if athlete_list and coach_list %}  Both athletes and coaches are available.{% endif %}{% if not athlete_list %}  There are no athletes.{% endif %}{% if athlete_list or coach_list %}  There are some athletes or some coaches.{% endif %}{% if not athlete_list or coach_list %}  There are no athletes or there are some coaches.{% endif %}{% if athlete_list and not coach_list %}  There are some athletes and absolutely no coaches.{% endif %}

{% if %} 標籤不允許在同一個標籤中同時使用 and 和 or ,因為邏輯上可能模糊的,例如,如下樣本是錯誤的: 比如這樣的代碼是不合法的:

{% if athlete_list and coach_list or cheerleader_list %}

系統不支援用圓括弧來組合比較操作。 如果你確實需要用到圓括弧來組合表達你的邏輯式,考慮將它移到模板之外處理,然後以模板變數的形式傳入結果吧。 或者,僅僅用嵌套的{% if %}標籤替換吧,就像這樣:

{% if athlete_list %}  {% if coach_list or cheerleader_list %}    We have athletes, and either coaches or cheerleaders!  {% endif %}{% endif %}

多次使用同一個邏輯操作符是沒有問題的,但是我們不能把不同的操作符組合起來。 例如,這是合法的:

{% if athlete_list or coach_list or parent_list or teacher_list %}

並沒有 {% elif %} 標籤, 請使用嵌套的`` {% if %}`` 標籤來達成同樣的效果:

{% if athlete_list %}  

Here are the athletes: {{ athlete_list }}.

{% else %}

No athletes are available.

{% if coach_list %}

Here are the coaches: {{ coach_list }}.

{% endif %}{% endif %}

一定要用 {% endif %} 關閉每一個 {% if %} 標籤。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.