Django o‘zgaruvchilari


ULASHISH

Shablon o‘zgaruvchilari

Django shablonlarida o‘zgaruvchilarni {{ }} qavslari ichiga joylashtirib render qilishingiz mumkin:

Misol

templates/template.html:

<h1>Hello {{ firstname }}, how are you?</h1>
Misolni ishga tushirish »

View’da o‘zgaruvchi yaratish

Yuqoridagi misoldagi firstname o‘zgaruvchisi shablonga view orqali yuborilgan:

views.py:

from django.http import HttpResponse
from django.template import loader

def testing(request):
  template = loader.get_template('template.html')
  context = {
    'firstname': 'Linus',
  }
  return HttpResponse(template.render(context, request))
Misolni ishga tushirish »

Yuqoridagi view’da ko‘rib turganingizdek, biz context nomli obyekt yaratamiz, uni ma’lumotlar bilan to‘ldiramiz va template.render() funksiyasiga birinchi parametr sifatida yuboramiz.


Shablonda o‘zgaruvchilar yaratish

O‘zgaruvchilarni {% with %} shablon tegi yordamida to‘g‘ridan-to‘g‘ri shablonning o‘zida ham yaratishingiz mumkin.

O‘zgaruvchi {% endwith %} tegi uchraguncha mavjud bo‘ladi:

Misol

templates/template.html:

{% with firstname="Tobias" %}
<h1>Hello {{ firstname }}, how are you?</h1>
{% endwith %}
Misolni ishga tushirish »

Shablon teglari haqida keyingi bobda batafsil bilib olasiz.



Modeldan olingan ma’lumotlar

Yuqoridagi misol shablonda o‘zgaruvchilarni yaratish va ulardan foydalanishning oson usulini ko‘rsatdi.

Odatda shablonda foydalanmoqchi bo‘lgan tashqi ma’lumotlarning aksariyati modeldan keladi.

Oldingi boblarda Member nomli model yaratgan edik, undan ushbu darslikning keyingi boblaridagi ko‘plab misollarda foydalanamiz.

Member modelidan ma’lumot olish uchun uni views.py fayliga import qilishimiz va view’da undan ma’lumotlarni olishimiz kerak:

members/views.py:

from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from .models import Member

def testing(request):
  mymembers = Member.objects.all().values()
  template = loader.get_template('template.html')
  context = {
    'mymembers': mymembers,
  }
  return HttpResponse(template.render(context, request))

Endi ma’lumotlardan shablonda foydalanishimiz mumkin:

templates/template.html:

<ul>
  {% for x in mymembers %}
    <li>{{ x.firstname }}</li>
  {% endfor %}
</ul>
Misolni ishga tushirish »

A’zolar bo‘ylab sikl bilan o‘tish uchun {% for %} Django shablon tegidan foydalanamiz.

Shablon teglari haqida keyingi bobda batafsil bilib olasiz.

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!