A Django-jinja2 egy könnyű csepp a megoldás feltételesen és zökkenőmentesen teszi jinja2 sablonok (azok keretében), míg a mulasztó a Django sablon motor.
Alapértelmezésben, ha a fájlnév tartalmaz .jinja (vagy foo.jinja.html) kiterjesztése, a sablon tenni keresztül jinja2.
A feltétel lehet testre keresztül a settings.py a JINJA2_ENGINE_CONDITION, a funkció, amely megkapja a teljes elérési utat a sablont az első paraméterként. Jinja2 akkor használjuk, ha a függvény értéke igaz.
& Nbsp; Például, akkor használja a motort, ha a fájl egy könyvtár nevű jinja, vagy olvasd el az első sort a fájl.
Lehet kényszeríteni minden sablont használni jinja2 által mindig vissza True pl lambda x: True
A jinja2 környezet jön létre ugyanabban a környezetben a Django rakodógépek használni - ez minden, a könyvtárak által visszaadott egyes loader meghatározott settings.TEMPLATE_LOADERS
Telepítés
Grab kód
Klónozni tároló és és adjunk hozzá django_jinja2, hogy a Python a saját csomag vagy telepítsd pip telepíteni Django-jinja2.
Add hozzá a settings.py
Add "django_jinja2", hogy a telepített alkalmazások
INSTALLED_APPS = [
& Nbsp; # ...,
& Nbsp; "django_jinja2",
]
Cserélje le sablont rakodógépek a rakodógépek a django_jinja2.loaders.
TEMPLATE_LOADERS = (
& Nbsp; "django_jinja2.loaders.filesystem.Loader",
& Nbsp; "django_jinja2.loaders.app_directories.Loader",
)
Kész! Most mindössze annyit kell tennie, hogy tegye a sablon nevét jinja a kiterjesztést.
Default Settings
Az alapértelmezett beállítások felül lehet bírálni keresztül a Django helyszínen beállításokat.
JINJA2_GLOBAL_CONTEXT = {
& Nbsp; "fordított": fordított,
& Nbsp; "MEDIA_URL": settings.MEDIA_URL,
& Nbsp; "STATIC_URL": getattr (beállítások, "STATIC_URL ',' '),
}
JINJA2_EXTENSIONS = []
# Lehet olyan funkció, amely elfogadja a sablon nevét / template könyvtárak
# Egy potenciálisan olvasni a fájlt, és biztosítsa van egy zászló, vagy bizonyos minta elején fájl, stb
JINJA2_ENGINE_CONDITION = lambda sablon_útvonal: "jinja" a os.path.basename (sablon_útvonal) .split ('.')
# A fájlok elérhetővé ezeket a Django template-rakodógépek be nem húzott jinja környezet
JINJA2_TEMPLATE_LOADERS = settings.TEMPLATE_LOADERS
# Felülírják a jinja 2 template class szükség
JINJA2_TEMPLATE_CLASS = Jinja2DjangoTemplate
Ha settings.DEBUG:
& Nbsp; JINJA2_UNDEFINED_CLASS = Jinja2UndefinedClass
más:
& Nbsp; JINJA2_UNDEFINED_CLASS = Jinja2UndefinedClass
követelmények :
- Python
- Django
Hozzászólás nem található