https://t.me/django_docs_uz
Ba'zi Django shablonlari kontekst protsessorlari belgilangan qiymatni qaytaradi. Jinja2 shablonlari uchun bu bilvosita
qatlam kerak emas, chunki siz to'g'ridan-to'g'ri
jinja2.Environment
-da doimiylarni qo'shishingiz mumkin.
Jinja2 uchun kontekst protsessorlarini qo'shish uchun asl foydalanish holati:
o So'rovga bog'liq qimmat hisob-kitob qilish.
o Har bir shablonda natija kerak.
o Natijani har bir shablonda bir necha marta ishlatish.
Agar ushbu shartlarning barchasi bajarilmasa, shablonga funktsiyani o'tkazish Jinja2 dizayniga ko'proq mos keladi.
Standart konfiguratsiya maqsadli ravishda minimal darajada saqlanadi. Agar shablon so'rov bilan taqdim etilsa (masalan,
render()
dan foydalanganda),
Jinja2
backend kontekstga global
request
,
csrf_input
va
csrf_token
qo'shadi.
Bundan tashqari, ushbu backend Django ta'miga ega muhit yaratmaydi. Django filtrlari va teglari haqida bilmaydi. Django-ga
xos API-lardan foydalanish uchun ularni muhitda sozlashingiz kerak.
Masalan, siz ushbu tarkib bilan
myproject/jinja2.py
ni yaratishingiz mumkin:
from
django.templatetags.static
import
static
from
django.urls
import
reverse
from
jinja2
import
Environment
def
environment
(
**
options):
env
=
Environment(
**
options)
env
.
globals
.
update({
'static'
: static,
'url'
: reverse,
})
Do'stlaringiz bilan baham: