Jinja2 template engine u Django frameworku

Jinja2 je moderni template engine namijenjen upotrebi u Pythonu, napravljen po uzoru na Django template engine. Osim što je daleko moćniji od Django template enginea, testovi brzine pokazuju da je u nekim situacijama i desetak puta brži.

Izdvojio bih nekoliko bitnih osobina radi kojih koristim Jinja2:

  • brzina renderiranja stranice
  • mogućnost prosljeđivanja parametara metodama i filterima
  • postavljanje varijabli unutar templatea pomoću taga set
  • python izrazi za testiranje uvjeta
  • makroi

Django kao framework je dovoljno fleksibilan i modularan da se Jinja2 može bez većih problema integrirati u njega.

Za povezivanje Jinja2 template enginea i Djanga potreban je Coffin koji će ih povezati te implementirati neke od standardnih filtera Django template enginea.

Instalacija

Potrebne libove ćemo instalirati preko easy_installa (setuptools) ili preko pip-a:

$ sudo easy_install jinja2 coffin

Instalacija bi trebala proći bez problema i Jinja2 bi trebala biti spremna za upotrebu.

Integracija u Django aplikaciju

U settings.py ćemo dodati sljedeće stavke:

JINJA2_TEMPLATE_DIRS = TEMPLATE_DIRS
JINJA2_ENVIRONMENT_OPTIONS = {
# Jinja2 opcije
"auto_reload": DEBUG,
}
JINJA2_FILTERS = (
# filteri
)
JINJA2_TESTS = {
# test funkcije
}
JINJA2_GLOBALS = {
# globalne funkcije
}
JINJA2_EXTENSIONS = (
# ekstenzije
)

U pojedinim datotekama u kojima želimo koristiti Jinja2 umjesto Django template enginea zamijenit ćemo:

from django.shortcuts import render_to_response
from django.template import RequestContext

sa:

from coffin.shortcuts import render_to_response, render_to_string
from coffin.template import RequestContext

To je sve što je potrebno da bi Jinja2 integrirala u Django aplikaciju i izrenderirala stranicu.

U sljedećem postu ću se pozabaviti opcijama, filterima i globalnim funkcijama.

Slobodni softver

Podržavamo slobodni softver otvorenog koda. Primijenit ćemo ga gdje god je to moguće.

Kontakt

Repetitor
obrt za informatičke tehnologije

Remetinečka cesta 151

Zagreb

OIB: 13595110799

Pošaljite nam poruku »