作为一个MVC的web开发框架,Django菜用模板方式用于页面显示。在工程中使用模块,需要加载模块引擎。Django的模块引擎模板情况情况下通过配置文件配置文件,具体而言,对settings.py 中的 TEMPLATES中的 BACKEND 值进行设置。
Django的模板引擎有2个,应用略有差异
这个模块为默认模板,在进行设置时需引入 django.template.backends.django.DjangoTemplates ,范例如下:
TEMPLATES = [
{
'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',
'myStudy.mycontent.custom_proc',
],
},
},
]
DjangoTemplates 引擎默认认可的模块目录为 templates,在应用的app下建立了 templates目录,其中的模板文件可以被直接调用
这个模块为可选模板,在进行设置时需引入 django.template.backends.jinja2.Jinja2,范例如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'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',
'myStudy.mycontent.custom_proc',
],
},
},
]
采用这个模块时需要提前安装jinja2插件(pip install jinja2),否则将无法正常运行。
另外,对应默认加载工程,需要注释掉相关的管理模块,在settings.py 中进行如下设置:
INSTALLED_APPS = [
# 'django.contrib.admin',
在urls.py中进行如下设置
urlpatterns = [
# path('admin/', admin.site.urls),
管理模块采用了django.template.backends.django.DjangoTemplates 进行解释,如果单纯加载django.template.backends.jinja2.Jinja2 而不注释相关的管理模块则会编译报错。
Jinja2 引擎默认认可的模块目录为 Jinja2 ,在应用的app下建立了 Jinja2 目录,其中的模板文件可以被直接调用
在不采用默认模板目录的情况下,需要设置settings.py 中的 TEMPLATES中的 DIRS 值