Django if 標籤
If 語句
一個 if
語句會評估一個變數,如果其值為真,則執行一段程式碼。
Elif
elif
關鍵字表示“如果之前的條件不為真,則嘗試此條件”。
示例
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% endif %}
執行示例 »
Else
else
關鍵字用於捕獲前面條件未覆蓋的任何情況。
示例
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
執行示例 »
Operators
上面的示例使用了 ==
運算子,用於檢查變數是否等於某個值,但你還可以使用許多其他運算子,或者如果你只想檢查變數是否不為空,則可以省略運算子。
==
等於。
!=
不等於。
<
小於。
<=
小於或等於。
>
大於。
>=
大於或等於。
and
檢查是否多個條件都為真。
或
檢查是否其中一個條件為真。
and/or
組合 and
和 or
。
Django 的 if
語句中不允許使用括號,因此當你組合 and
和 or
運算子時,重要的是要了解 and
會自動新增括號,而 or
則不會。
這意味著上面的示例由直譯器這樣讀取:
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
in
檢查某個項是否存在於某個物件中。
not in
檢查某個項是否不存在於某個物件中。
is
檢查兩個物件是否相同。
此運算子與 ==
運算子不同,因為 ==
運算子會檢查兩個物件的 值,而 is
運算子會檢查兩個物件的 身份。
在檢視中,我們有兩個值相同的物件 x
和 y
。
示例
views.py
:
from django.http import HttpResponse
from django.template import loader
def testing(request):
template = loader.get_template('template.html')
context = {
'x': ['Apple', 'Banana', 'Cherry'],
'y': ['Apple', 'Banana', 'Cherry'],
}
return HttpResponse(template.render(context, request))
這兩個物件具有相同的值,但它們是同一個物件嗎?
讓我們嘗試用 ==
運算子進行相同的示例。
兩個物件如何能是同一個物件?嗯,如果你有兩個物件指向同一個物件,那麼 is
運算子就會評估為真。
我們將透過使用 {% with %}
標籤來演示這一點,該標籤允許我們在模板中建立變數。
示例
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
執行示例 »
is not
檢查兩個物件是否不相同。