Django-jinja2 on helppo lasku ratkaisu ehdollisesti ja saumattomasti tekee jinja2 malleja (niiden yhteydessä), kun taas oletuksena Django mallin moottori.
Oletuksena jos tiedostonimi sisältää .jinja (tai foo.jinja.html) laajennus, mallin on suoritettu kautta jinja2.
Ehto voidaan räätälöidä kautta settings.py vuonna JINJA2_ENGINE_CONDITION, funktio, joka saa koko polku malliin kuin ensimmäinen argumentti. Jinja2 käytetään, jos funktio palauttaa True.
& Nbsp; esimerkiksi voit käyttää moottoria, jos tiedosto on hakemisto nimeltä Jinja tai lue ensimmäinen rivi tiedoston.
Voisit pakottaa kaikki malleja käyttämään jinja2 olemalla aina palaavat True esim lambda x: True
Jinja2 ympäristö on luotu samassa ympäristössä Django kuormaajat käyttää - että on kaikki hakemistot palautetaan kunkin kuormaaja määritelty settings.TEMPLATE_LOADERS
Asennus
Grab koodi
Clone arkistoon ja ja lisää django_jinja2 omaan python sivuston paketteja tai asenna käyttäen pip asentaa Django-jinja2.
Lisää settings.py
Lisää "django_jinja2" teidän asennetut sovellukset
INSTALLED_APPS = [
& Nbsp; # ...,
& Nbsp; "django_jinja2",
]
Korvaa mallin kuormaajat kanssa kuormaajat django_jinja2.loaders.
TEMPLATE_LOADERS = (
& Nbsp; "django_jinja2.loaders.filesystem.Loader",
& Nbsp; "django_jinja2.loaders.app_directories.Loader",
)
Valmis! Nyt sinun täytyy tehdä, on tehdä mallin nimi Jinja laajennuksessa.
Oletusasetukset
Oletusasetukset voidaan ohittaa kautta Django sivuston asetuksia.
JINJA2_GLOBAL_CONTEXT = {
& Nbsp; "käänteinen": kääntää,
& Nbsp; "MEDIA_URL ': settings.MEDIA_URL,
& Nbsp; "STATIC_URL": getattr (asetukset, "STATIC_URL ',' '),
}
JINJA2_EXTENSIONS = []
# Voi olla toiminto, joka hyväksyy mallin nimi / template dirs
# Voisi mahdollisesti lukea tiedoston ja varmistaa siellä lippu tai tietyn kuvion alussa tiedoston, jne.
JINJA2_ENGINE_CONDITION = lambda template_path: "jinja" in os.path.basename (template_path) .split ('.')
# Tiedostot saataville näiden Django malliin kuormaajat vedetään osaksi Jinja ympäristöön
JINJA2_TEMPLATE_LOADERS = settings.TEMPLATE_LOADERS
# Ohittaa Jinja 2 mallin luokan edellyttämällä
JINJA2_TEMPLATE_CLASS = Jinja2DjangoTemplate
jos settings.DEBUG:
& Nbsp; JINJA2_UNDEFINED_CLASS = Jinja2UndefinedClass
muuta:
& Nbsp; JINJA2_UNDEFINED_CLASS = Jinja2UndefinedClass
Vaatimukset :
- Python
- Django
Kommentteja ei löytynyt