1 什么是模板
模板是一个文本文件。它可以生成任何基于文本的格式(HTML、XML、CSV 等)。
1.1 作用
- 动态内容渲染:根据传递的数据动态生成网页内容。
- 代码重用:通过模板继承和包含机制,实现代码重用,提高开发效率。
- 分离逻辑与展示:
将业务逻辑与页面展示分离,增强代码的可读性和维护性。前后端分离。
1.2 渲染过程
模板的渲染是指将模板文件转换为最终的HTML页面的过程:
- 加载模板文件:从文件系统或其他模板加载器中加载模板文件。
- 解析模板:将模板中的变量和标签替换为相应的值和逻辑。
- 生成HTML:将解析后的内容组合成完整的HTML页面,并返回给客户端。
2 创建与配置
2.1 创建
在工程项目下创建一个templates目录,并建立hulu.html文件,hulu.html就是我们的第一个模板文件。整个目录结构如下:
DjangoTest/
|-- DjangoTest
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- views.py
| |-- wsgi.py
|-- manage.py
`-- templates
`-- hulu.html
2.2 配置
在settings.py
配置文件中,(settings.py配置详见)有一个TEMPLATES
变量:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], #指定模板文件的存放路径
'APP_DIRS': True, #搜索APP里面的所有templates目录
'OPTIONS': {
'context_processors': [ #context_processors 用于配置模板上下文处理器
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
2.3 加载
- loader:使用 loader 获取模板,通过 HttpResponse 进行响应
from django.template import loader
# 1.通过loader加载模板
t = loader.get_template("模板文件名")
# 2.将t转换成HTML字符串
html = t.render(字典数据)
# 3.用响应对象将转换的字符串内容返回给浏览器
return HttpResponse(html)
- render:使用 render 方法直接加载并响应模板
from django.shortcuts import render
return render(request,'模板文件名', 字典数据)