這篇文章主要介紹了Python的Django框架中if標簽的相關使用,是Django框架使用中的基礎知識,需要的朋友可以參考下
{% if %} 標簽檢查(evaluate)一個變量,如果這個變量為真(即,變量存在,非空,不是布爾值假),系統會顯示在 {% if %} 和 {% endif %} 之間的任何內容,例如:
- {% if today_is_weekend %}
- <p>Welcome to the weekend!</p>
- {% endif %}
{% else %} 標簽是可選的:
- {% if today_is_weekend %}
- <p>Welcome to the weekend!</p>
- {% else %}
- <p>Get back to work.</p>
- {% endif %}
Python 的“真值”
在Python和Django模板系統中,以下這些對象相當于布爾值的False
空列表([] )
空元組(() )
空字典({} )
空字符串('' )
零值(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 %}
- <p>Here are the athletes: {{ athlete_list }}.</p>
- {% else %}
- <p>No athletes are available.</p>
- {% if coach_list %}
- <p>Here are the coaches: {{ coach_list }}.</p>
- {% endif %}
- {% endif %}
一定要用 {% endif %} 關閉每一個 {% if %} 標簽。
新聞熱點
疑難解答