7.1 模板系统基础
2025-02-17
7.1.1 使用模板系统
使用Django的模板系统通常需要三个步骤的操作
- 在项目的
settings.py文件中配置TEMPLATES,指定可用的模板后端 - 创建Template对象,并提供字符串形式的模板代码
- 调用Template对象的
render方法,并传入字典上下文;render方法的返回值是 模板代码渲染后的字符串,且变量和标签会由传入的Context解释替换
依赖三个角色:模板后端,Template和Context
7.1.2 模板后端的默认配置
支持DTL和Jinja2模板后端
DTL是内置于Django框架中的,也是官方极力推荐使用的模板后端,之前介绍的Django管理系统就使用DTL。如果没有特别的需要,应该遵循Django的默认行为,不要更换模板后端。
直接接触模板后端的是:
settings.py文件中配置的TEMPLATES列表,列表中的每一个元素都是一个字典对象,每个字典对象代表了配置的模板后端。相关参数
- BACKEND:指定了要使用的模板引擎类的Python路径,Django默认使用的是django.template.backends.django.DjangoTemplates。
- DIRS:一个目录列表,指定模板文件的存放路径。模板引擎将按照列表中定义的顺序查找模板文件。
- APP_DIRS:一个布尔值,为True时,模板引擎会在已安装应用的templates子目录中查找模板。由于大多数引擎都会从文件目录查找并加载模板,所以,模板引擎都会有APP_DIRS和DIRS这两个通用配置。
- OPTIONS:指定额外的选项,不同的模板引擎有着不同的可选额外参数。例如这里的context_processors用于配置模板上下文处理器,在使用RequestContext时将看到它们的作用。
DIRS和APP_DIRS这两个选项决定了模板文件的存放路径
上下文处理器:上下文处理器其实是一种通用的模板赋值函数。
Django默认对模板系统的配置对于一个简单的项目开发已经足够用了,特别是模板的匹配规则定义(APP_DIRS设置为True),将模板文件的存储位置设计得非常清晰。内置的上下文处理器包含了很多有用的信息,如可以直接从auth处理器中拿到登录用户,简化了视图函数的上下文传递。因此,在决定修改这些配置之前,一定要清楚当前的操作是否会比Django推荐的更好