跳到主要内容

[模板]:模板引擎

介绍完了MVT中的V, 本节开始我们来介绍T, 也就是模板相关的内容。 MVT模式

其实呢,Django中的模板它就是用来动态生成html的。 例如当我们在这个网站中访问图书的时候, 我们仔细观察这两个页面。 图12-图书1.png

图12-图书2.png

它们的整体结构都是一样的, 只是由于这两个图书的ID不同就导致了, 它们的内容介绍是不同的。

那么我们就可以使用模板来实现 页面的整个结构不变, 然后呢,随着图书的ID发生变化, 而将这里的图书信息进行更改, 这就是模板可以实现的功能。

好,我们来看一下模板的主要内容 在介绍模板的时候,我们主要介绍5个最常用的内容,分别是

  1. 模板引擎和配置
  2. 模板中的变量
  3. 模板标签
  4. 模板过滤器
  5. 模板继承和包含

模板引擎​

在Django中呢,它是有一个自带的模板引擎的, 就是因为有模版引擎的存在, 我们才可以按照一定的 语法, 或者称之为接口, 来实现相应的功能。

那么在Django中它是有自带的模板引擎的, 叫做DTL。 除此之外呢,我们也可以更换自己喜欢的模板引擎, 比如说, 比较常见的jinja2等等。 我们可以在setting文件中进行配置。 回到我们的代码中,在全局配置文件中有一个setting.py这个文件 在这里面我们来搜索一下templates。

demo/demo/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['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的模板引擎,默认就可以使用这个。
  • DIRS:模板文件的路径,这里指定的是templates目录。
  • APP_DIRS:是否要在app的目录下搜索模板文件,设置为True表示搜索。
  • OPTIONS: 一些模板引擎的配置选项。
  • context_processors: 指定模板上下文处理器,这些函数会对每个请求处理后传入模板的上下文进行修改。这里包含了一些默认的context processor。

前面我们介绍过这个'DIRS', 我们这里设置为

demo/demo/settings.py
'DIRS': ['templates'],

如果这个这里不设置,默认为

demo/demo/settings.py
'DIRS': [],

那么则表示,模板文件默认存在于对应的应用下的templates路径下。 例如,对于account应用,需要在account目录下新建一个templates文件夹,在下面创建对应的html文件。 app01和app02也是如此。 那么Django是如何找到这个应用的呢? 我们需要在settings.py文件中,INSTALLED_APPS添加我们创建的应用。代码如下:

demo/demo/settings.py

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'account', # 新增应用
'app01' # 新增应用
]

提示

模板文件放到什么位置,没有固定答案,大家可以根据喜好自行选择。

课程推荐

想系统学习这门课程?

你已阅读完本文。需要更完整的知识体系,可以继续了解「Django + Vue 全栈课程」。

查看课程详情