MVC模式
MVC代表Model-View-Controller(模型-视图-控制器)模式。
- M-Model模型层,主要用于对数据库层的封装
 - V-View视图层,用于向用户展示结果(What+How)
 - C-Controller控制层,用于处理请求、获得数据、返回结果
 
Django的MTV模式
MTV代表Model-Template-View(模型-模板-视图)模式。
- M-Model模型层,负责与数据库交互
 - T-Template模板层,负责呈现内容到浏览器(How)
 - V-View视图层,负责接收请求、获取数据、返回结果(What)
 
什么是模板
- 模板是可以根据字典数据动态变化的Html网页
 - 模板可以根据视图中传递的字典数据动态生成对应的HTML页面
 
Django中如何使用模板-初始化配置
- 创建模板文件夹
<项目名>/templates - 在
settings.py中修改TEMPLATES配置项
a. BACKEND:指定模板引擎
b. DIR8:模板的搜索目录(可以是一个或者多个)
c. APP_DIRS:是否要再应用中的templates文件夹中搜索模板文件
d. OPTIONS:有关模板的选项 - 在配置项中设置
DIRS-'DIRS':[os.path.join(BASE_DIR,'templates')] 
Django中如何使用模板-设置视图
方法1 采用loader函数
from django.template import loader
t = loader.get_template('test_html.html')
html = t.render()
return HttpResponse(html)方法2 采用render函数直接返回,并向template中传递数据
from django.shortcuts import render
dic={'name':'aaa'}
return HttpResponse(request, 'test_html.html', dic)Django中如何使用模板-变量语法
在模板中使用变量语法,应遵从以下形式:
- {{ 变量名 }}
 - {{ 变量名.index }}
 - {{ 变量名.key }}
 - {{ 对象.方法 }}
 - {{ 函数名 }}
 
Django中模板的继承
模板继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中相应的块,使用语法如下:
在父模板中:
- 定义父模板中的block块标签
 - 识别出那些在子模块中是允许修改的
 - block标签:在父模板中定义,可以在子模板中覆盖
 
在子模板中:
继承模板extends标签(写在模板文件的第一行)
例如{% extends 'base.html %}子模板重写父模板中的内容块
{% block block_name %} 子模板块用来覆盖父模板中block_name的内容 {% endblock block_name %}
关于重写:
- 不重写,则按照父模板的内容效果显示
 - 重写,则按照重写的内容效果进行显示
 - 注意:模板继承时,服务器端的动态内容无法继承