Django if...else


ULASHISH

if operatori

if operatori o‘zgaruvchini tekshiradi va qiymat rost (true) bo‘lsa, kod blokini bajaradi.

Misol

{% if greeting == 1 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

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:

Misol

{% if greeting %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »


==

Teng.

Misol

{% if greeting == 2 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

!=

Teng emas.

Misol

{% if greeting != 1 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

<

Kichik.

Misol

{% if greeting < 3 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

<=

Kichik yoki teng.

Misol

{% if greeting <= 3 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

>

Katta.

Misol

{% if greeting > 1 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

>=

Katta yoki teng.

Misol

{% if greeting >= 1 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

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.

Misol

{% if greeting == 1 or greeting == 5 %}
  <h1>Hello</h1>
{% endif %} 
Misolni ishga tushirish »

and/or

and va or operatorlarini birlashtirish.

Misol

{% if greeting == 1 and day == "Friday" or greeting == 5 %}
Misolni ishga tushirish »

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?

Misol

{% if x is y %}
  <h1>YES</h1>
{% else %}
  <h1>NO</h1>
{% endif %}
Misolni ishga tushirish »

Endi xuddi shu misolni == operatori bilan sinab ko‘raylik:

Misol

{% if x == y %}
  <h1>YES</h1>
{% else %}
  <h1>NO</h1>
{% endif %}
Misolni ishga tushirish »

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.

Misol

{% if x is not y %}
  <h1>YES</h1>
{% else %}
  <h1>NO</h1>
{% endif %} 
Misolni ishga tushirish »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!