Django if...else
if operatori
if operatori o‘zgaruvchini tekshiradi va qiymat rost (true) bo‘lsa, kod blokini bajaradi.
Elif
elif kalit so‘zi "agar oldingi shartlar rost bo‘lmasa, ushbu shartni sinab ko‘r" degan ma’noni bildiradi.
Misol
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% endif %}
Misolni ishga tushirish »
Else
else kalit so‘zi oldingi shartlarga tushmagan barcha holatlarni ushlaydi.
Misol
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Misolni ishga tushirish »
Operatorlar
Yuqoridagi misollarda o‘zgaruvchi biror qiymatga tengligini tekshirish uchun ishlatiladigan == operatoridan foydalanilgan. Biroq boshqa ko‘plab operatorlardan ham foydalanishingiz mumkin. Agar faqat o‘zgaruvchi bo‘sh emasligini tekshirmoqchi bo‘lsangiz, operatorni umuman yozmasligingiz ham mumkin:
==
Teng.
!=
Teng emas.
<
Kichik.
<=
Kichik yoki teng.
>
Katta.
>=
Katta yoki teng.
and
Birdan ortiq shart rost ekanligini tekshirish uchun.
Misol
{% if greeting == 1 and day == "Friday" %}
<h1>Hello Weekend!</h1>
{% endif %}
Misolni ishga tushirish »
or
Shartlardan biri rost ekanligini tekshirish uchun.
and/or
and va or operatorlarini birlashtirish.
Django’da if operatorlarida qavslardan foydalanishga ruxsat berilmaydi, shuning uchun and va or operatorlarini birlashtirganda qavslar and uchun qo‘yilishini, or uchun esa qo‘yilmasligini bilish muhim.
Ya’ni yuqoridagi misol interpretator tomonidan quyidagicha o‘qiladi:
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
in
Muayyan element obyektda mavjudligini tekshirish uchun.
Misol
{% if 'Banana' in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Misolni ishga tushirish »
not in
Muayyan element obyektda mavjud emasligini tekshirish uchun.
Misol
{% if 'Banana' not in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
Misolni ishga tushirish »
is
Ikki obyekt aynan bitta obyekt ekanligini tekshirish.
Bu operator == operatoridan farq qiladi: == operatori ikki obyektning qiymatlarini tekshiradi, is operatori esa ikki obyektning aynanligini (identity) tekshiradi.
View’da bir xil qiymatlarga ega ikkita obyekt bor — x va y:
Misol
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))
Ikki obyektning qiymati bir xil, lekin ular aynan bitta obyektmi?
Endi xuddi shu misolni == operatori bilan sinab ko‘raylik:
Ikki obyekt qanday qilib aynan bitta bo‘lishi mumkin? Agar ikkita obyekt bitta obyektga ishora qilsa, is operatori rost (true) natija beradi:
Buni shablonda o‘zgaruvchilar yaratish imkonini beruvchi {% with %} tegi yordamida namoyish qilamiz:
Misol
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
Misolni ishga tushirish »
is not
Ikki obyekt aynan bitta obyekt emasligini tekshirish uchun.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
