模板配置
在Web开发中,模板是一种特殊的HTML文档。这些HTML文档嵌入了一些能够识别的变量和指令,然后由Django的模板引擎解析这些变量和指令,生成完整的HTML网页并返回给用户浏览。模板Django里面的MTV框架模式的T部分,配置模板路径是告诉Django在解析模板时,如何找到模板所在的位置。创建项目时,Django已有初始的模板配置。如下所示:
TEMPLATES = [
{
'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',
],
},
},
]
模板配置是以列表格式呈现的,每个元素具有不同的含义,含义说明如下:
- BACKEND: 定义模板引擎,用于识别模板里面的变量和指令。内置的模板引擎有Django Templates和jinja2.Jinjia2,每个模板引擎都有自己的变量和指令语法。
- DIRS: 设置模板所在路径,告诉Django在哪个地方找到模板的位置,默认为空列表。
- APP_DIRS: 是否在App里查找模板文件。
- OPTIONS: 用于填充在RequestContext的上下文(模板里面的变量和指令),一般情况下不做任何修改。
模板配置通常配置DIRS的属性值即可,在项目的根目录和index下分别创建templates文件夹,并在文件夹下分别创建文件index.html和app_index.html。一般情况下,根目录的templates通常存放共用的模板文件,能为各个App的模板文件调用,这个模式符合代码重复使用原则。则配置信息代码如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'index/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',
],
},
},
]