Django模板简介
模板介绍
Django自带有DTL模板(Django Template Language),DTL能够和Django完美兼容。
- 相对于jinja2:Flask用jinja2作为框架的模板系统,Django也可以用jinja2模板
- 相对于html:DTL模板和jinja2模板能够被Django编译,可以传递参数,实现数据动态化;展示在客户端
模板使用
模板路径配置
- 全局
- 新建一个templates文件夹(与项目同名文件夹同级),添加模板文件
- 在配置文件夹(项目同名文件夹)的settings.py中找到TEMPLATES,向DIRS中的列表添加路径,参考注释路径
- 局部
-
查看settings.py的TEMPLATES的APP_DIRS是否为True,如果是则可以进行局部配置,如果不是,则不能。
-
在app内新建templates文件夹
-
添加模板文件
-
注册需要局部配置的app
注意:如果要局部配置有效,则不能配置全局,因为在模板的查找过程中,全局优先 -
render
return render(request, 'your_template_route')
- render_to_string
html = render_to_string('your_template_route')
return HttpResponse(html)
模板语法
在render加个context参数,来传递参数。
注意:context的值必须是字典类型
参数调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Animals</title>
</head>
<body>
<h1>列表数据调用</h1>
<p>{{ animal_list.1 }}</p>
<h1>元组数据调用</h1>
<p>{{ animal_tuple.2 }}</p>
<h1>字典数据调用</h1>
<p>{{ animal_dict.big }}</p>
</body>
</html>