Ich habe diesen Artikel geschrieben, als ich an [Tokyo Django Meetup # 3] teilgenommen habe (http://django.connpass.com/event/14219/).
In Django 1.8 können Sie Jinja2 als Vorlagen-Engine auswählen. Um es einzustellen, schreiben Sie einfach "TEMPLATES" in die Einstellungsdatei wie folgt.
settings.py
TEMPLATES = [
{
#↓ Schreiben Sie den Standardwert neu
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
# context_Verwenden Sie es nicht, da es bei Prozessoren nicht funktioniert(Siehe unten)
#'context_processors': [
# 'django.template.context_processors.debug',
# 'django.template.context_processors.request',
# 'django.contrib.auth.context_processors.auth',
# 'django.contrib.messages.context_processors.messages',
#],
},
},
]
Jinja2 ist nicht in Django enthalten. Installieren Sie Jinja2 daher separat mit pip install Jinja2
.
In "settings.py", das von "django-admin start project" generiert wurde, befindet sich "context_processors" in "OPTIONS". Wenn Sie jedoch Jinja2 mit dieser Option verwenden, tritt der folgende Fehler auf. [^ 1]
Exception Type: TypeError
Exception Value:
__init__() got an unexpected keyword argument 'context_processors'
Sie können das Element "Umgebung" anstelle von "Kontextprozessoren" verwenden. Schreiben Sie app / jinja2.py
mit den folgenden Inhalten:
jinja2.py
from __future__ import absolute_import # Python 2 only
from jinja2 import Environment
from datetime import datetime
def environment(**options):
env = Environment(**options)
#Das ist Kontext_Anstelle von Prozessoren
env.globals.update({
'greeting': u"HELLO!",
'imananji': datetime.now, #Übergeben Sie ein aufrufbares Objekt, wenn Sie das Ergebnis bei jedem Laden der Seite erhalten möchten
})
return env
Wenn Sie "Umgebung" wie folgt schreiben, können Sie "{{Begrüßung}}", "{{imananji ()}}" in der Vorlage verwenden.
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
# 'app'Teil hängt von der Konfiguration der Anwendung ab
'environment': 'app.jinja2.environment',
},
},
]
[^ 1]: ... Beispielcode in der offiziellen Dokumentation beiläufig "context_processors" `Wurde gelöscht: weinen:
Recommended Posts