Django使用内置的模板语法太少,换成jinja2就很方便
在template加上
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
# 这里是全局变量的方法
'environment': '你的全局变量放的位置,比如我的是:buyOrder.middleware.environment'
},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'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处理器
from jinja2 import Environment
def globle_method(**option):
return **option
def environment(**options):
env = Environment(**options)
env.globals.update({
"全局变量的名字":"全局变量的值",
"全局方法的名字":globle_method
})
全局变量可以不用给(),全局方法要调用所以要加()号