Django Тег if
Інструкція If
Інструкція if
обчислює змінну та виконує блок коду, якщо значення істинне (true).
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 %}
Виконати приклад »
Оператори
У наведених вище прикладах використовується оператор ==
, який використовується для перевірки відповідності змінної значенню, але є багато інших операторів, які можна використовувати, або навіть опустіть оператор, якщо ви просто хочете перевірити, чи змінна не порожня:
==
Дорівнює.
!=
Не дорівнює.
<
Менше ніж.
<=
Менше ніж або дорівнює.
>
Більше ніж.
>=
Більше ніж або дорівнює.
and
Щоб перевірити, чи виконується більше однієї умови.
Приклад
{% if greeting == 1 and day == "Friday" %}
<h1>Hello Weekend!</h1>
{% endif %}
Виконати приклад »
or
Щоб перевірити, чи виконується одна з умов.
and/or
Комбінує and
та or
.
Дужки не дозволені в інструкціях if
у Django, тому коли ви поєднуєте and
та or
, важливо знати, що дужки додаються для and
, але не для or
.
Це означає, що наведений вище приклад читається інтерпретатором таким чином:
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
in
Щоб перевірити наявність певного елемента в об’єкті.
Приклад
{% if 'Banana' in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Виконати приклад »
not in
Щоб перевірити, чи немає певного елемента в об’єкті.
Приклад
{% if 'Banana' not in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Виконати приклад »
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
обчислюється як true:
Ми продемонструємо це за допомогою тегу {% with %}
, який дозволяє нам створювати змінні в шаблоні:
Приклад
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
Виконати приклад »
is not
Перевірити, чи не однакові два об’єкти.