Django中的模板路径总结(九)
2019-08-03 本文已影响0人
梦捷者
一、模板路径的查找顺序
- 先查找项目目录下的settings.py文件下的TEMPLATES列表中的字典元素中的DIRS的值。(这是拼接自定义的templates文件夹)
- 继续查找项目目录下的settings.py文件下的TEMPLATES列表中的字典元素中的APP_DIRS的值,如果对应胡值为True,继续第三步。
- 跳转到项目目录下的settings.py文件下的INSTALLED_APPS列表中,列表中的值代表对app应用进行注册操作。(说明每个app目录下可以设置模板templates)
二、模板路径设置的两种方式
1、在app应用下建立模板(有利于在app进行复用操作时使用,即app应用可以使用到多个项目中)------默认使用的
2、在项目根目录下建立模板(集中处理模板)
三、出现的问题
1、为什么要在tempaltes里面再套一层(再套一层app名字,再其里面写html文档)?
如果不进行嵌套一层的话,当根目录下设置的templates下有一个index.html
,并且在app应用下的templates也有一个index.html
,这样的话优先选择显示项目根目录下中templates的index.html
。(只要找到一个符合的模板,就返回)
2、优先查找项目根目录下设置的templates还是优先查找app应用下的templates?
答:优先查找根目录下设置的templates,因此只要找到一个符合的模板,就返回。
四、模板路径配置总结:
在配置文件setting.py中找到TEMPLATES变量设置来配置。这是一个设置选项的列表,模板大都包含两项通用设置;两种方式配置模板:
-
第一种: DIRS 定义一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件。将templates文件夹放在项目根目录下。
-
第二种: APP_DIRS告诉模板引擎是否应该进入每个已安装的应用中查找模板,值为True则模板会去被安装了的app下面的templates文件夹查找模板。所以我们也可以在每个app的里面创建模板目录templates存放模板,这种方式需要将这个app应用添加到(注册到)setting.py文件的INSTALLED_APPS列表中。