Django模板层:模板查找路径,模板查找顺序,DTL模板语法(简单介绍)
转载于网络:
一、Django模板层 Templates
二、一个小栗子
问题:这里直接把模板写在views里,如果模板内容很多,就容易混乱。
改进:把模板独立出来,把视图逻辑和模板分离,在需要模板的时候,视图再加载对应的模板
在这里我们打印一下,看看BASE_DIR是什么内容:
可见,BASE_DIR = Path(__file__).resolve().parent.parent
是获取当前工程文件所在的文件路径,然后再通过TEMPLATES = [{'DIRS': [BASE_DIR / 'templates'],……}]
,拼接为C:\Users\520\djangoProject\templates
完整的路径。当加载template的时候,默认到这个目录下查找模板文件。
三、模板查找路径、模板查找顺序
模板查找路径:
工程目录 settings.pyTEMPLATES = [{'DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,……}]
一、BASE_DIR = Path(__file__).resolve().parent.parent
print(BASE_DIR) #输出C:\Users\520\djangoProject
二、INSTALLED_APPS = ['django.contrib.admin',……'mysite.apps.MysiteConfig']
可见,BASE_DIR = Path(file).resolve().parent.parent`是获取当前工程文件所在的文件路径,然后再通过TEMPLATES = [{‘DIRS’: [BASE_DIR / ‘templates’],……}],拼接为C:\Users\520\djangoProject\templates完整的路径。'APP_DIRS’是当前工程下的所有app应用。
模板查找顺序:
第一步,在工程templates文件下查找模板文件
第二步,如果第一步没有找到,则到该app应用下的templates文件下查找同名模板文件
第三步,如果第二步没有找到,则到工程其它app应用下的templates文件下查找同名模板文件
四、模板语法
Django 定义了一个标准的API,DTL用于加载和渲染模板。加载包括为给定的标识符找到模板并对其进行预处理,通常是将其编译成内存中的表示形式。渲染是指将上下文数据插入模板,并返回结果字符串。