01、配置文件 -- 模板配置,必须包含原始模板 和 jinja 模板,且jinja模板在前面否则不生效
--创建templates文件夹,这里我习惯于创建在根目录。这种创建方式需要我们使用:
--'DIRS': [os.path.join(os.path.dirname(BASE_DIR), 'templates')] 退一层的方式添加
--必须放在原始位置的前面
--不修改原有引擎配置,新增引擎jinja2, 即在settings.py中
--并且一定要把jinja2 引擎放在前面, 否则默认生效的还是django模板引擎.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(os.path.dirname(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',
],
},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
]
02、补充jinja2语法 -- 1、url跳转的语法 2、静态文件配置的语法
1、创建jinja2模板引擎环境配置文件
--这里创建整个项目都在使用的utils工具文件夹
--这里新建一个utils文件夹,再创建jinja2_env.py文件作为模板引擎环境配置文件
2、编写Jinja2模板引擎环境配置代码
--确保可以使用模板引擎中的{{ url('') }} {{ static('') }}这类语句
from jinja2 import Environment
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
def jinja2_environment(**options):
env = Environment(**options)
env.globals.update({
'static': staticfiles_storage.url,
'url': reverse,
})
return env
03、修改语法规则之后需要让django感知到 -- 需要在配置文件中添加[ setting_file/dev.py ]
--这个就是修改语法规则之后,在配置文件中的jinjia2配置
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
# 补充jinjia2模板引擎环境
'enviroment': 'meiduo_django_jinjia.utils.jinja2_env.jinja2_environment',
},
},