J'ai écrit cet article en participant au Tokyo Django Meetup # 3.
Depuis Django 1.8, vous pouvez choisir Jinja2 comme moteur de template.
Pour le définir, écrivez simplement TEMPLATES
dans le fichier de configuration comme suit.
settings.py
TEMPLATES = [
{
#↓ Réécrivez la valeur par défaut
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
# context_Ne l'utilisez pas car cela ne fonctionne pas s'il y a des processeurs(Voir ci-dessous)
#'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 n'est pas inclus dans Django, veuillez donc installer Jinja2 séparément avec pip install Jinja2
.
Dans settings.py
généré par django-admin start project
, il y a context_processors
dans'OPTIONS'
, mais si vous utilisez Jinja2 avec cette gauche, l'erreur suivante se produira. [^ 1]
Exception Type: TypeError
Exception Value:
__init__() got an unexpected keyword argument 'context_processors'
Vous pouvez utiliser l'élément ʻenvironment au lieu de
context_processors. Écrivez ʻapp / jinja2.py
avec le contenu suivant,
jinja2.py
from __future__ import absolute_import # Python 2 only
from jinja2 import Environment
from datetime import datetime
def environment(**options):
env = Environment(**options)
#C'est le contexte_Au lieu de processeurs
env.globals.update({
'greeting': u"HELLO!",
'imananji': datetime.now, #Passez un objet appelable si vous voulez le résultat à chaque fois que vous chargez la page
})
return env
Si vous écrivez ʻenvironnement comme suit, vous pouvez utiliser
{{salutation}} ,
{{imananji ()}} ʻ dans le modèle.
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
# 'app'La partie dépend de la configuration de l'application
'environment': 'app.jinja2.environment',
},
},
]
[^ 1]: ... Exemple de code dans la documentation officielle avec désinvolture `` 'context_processors' `A été effacé: pleurer:
Recommended Posts