Django nếu gắn thẻ
Câu lệnh if
Câu lệnh if
đánh giá một biến và thực thi một khối mã nếu giá trị đó là đúng.
Elif
Từ khóa elif
có nội dung "nếu các điều kiện trước đó không đúng thì hãy thử điều kiện này".
Ví dụ
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% endif %}
Chạy ví dụ »Khác
Từ khóa else
bắt bất kỳ thứ gì không được nắm bắt bởi các điều kiện trước đó.
Ví dụ
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Chạy ví dụ »Toán tử
Các ví dụ trên sử dụng toán tử ==
, được sử dụng để kiểm tra xem một biến có bằng một giá trị hay không, nhưng có nhiều toán tử khác mà bạn có thể sử dụng hoặc thậm chí bạn có thể bỏ toán tử nếu bạn chỉ muốn kiểm tra xem một biến có không trống:
==
Bằng.
!=
Không bằng.
<
Ít hơn.
<=
Nhỏ hơn hoặc bằng.
>
Là lớn hơn.
>=
Là lớn hơn hoặc bằng.
Và
Để kiểm tra xem có nhiều hơn một điều kiện là đúng hay không.
hoặc
Để kiểm tra xem một trong các điều kiện có đúng hay không.
và/hoặc
Kết hợp and
và or
.
Dấu ngoặc đơn không được phép trong câu lệnh if
trong Django, vì vậy khi bạn kết hợp toán tử and
và or
, điều quan trọng cần biết là dấu ngoặc đơn được thêm vào and
chứ không phải cho or
.
Có nghĩa là ví dụ trên được trình thông dịch đọc như thế này:
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
TRONG
Để kiểm tra xem một mục nào đó có trong một đối tượng hay không.
Ví dụ
{% if 'Banana' in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Chạy ví dụ »không ở trong
Để kiểm tra xem một mục nào đó không có trong một đối tượng.
Ví dụ
{% if 'Banana' not in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Chạy ví dụ »là
Kiểm tra xem hai đối tượng có giống nhau không.
Toán tử này khác với toán tử ==
, vì toán tử ==
kiểm tra giá trị của hai đối tượng, nhưng toán tử is
kiểm tra danh tính của hai đối tượng.
Trong khung nhìn, chúng ta có hai đối tượng x
và y
, có cùng giá trị:
Ví dụ
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))
Hai đối tượng có cùng giá trị, nhưng nó có phải là cùng một đối tượng không?
Thay vào đó, chúng ta hãy thử ví dụ tương tự với toán tử ==
:
Làm thế nào hai đối tượng có thể giống nhau? Chà, nếu bạn có hai đối tượng trỏ đến cùng một đối tượng thì toán tử is
sẽ đánh giá là đúng:
Chúng tôi sẽ chứng minh điều này bằng cách sử dụng thẻ {% with %}
, thẻ này cho phép chúng tôi tạo các biến trong mẫu:
Ví dụ
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
Chạy ví dụ »không phải
Để kiểm tra xem hai đối tượng có giống nhau không.