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 %}
关于重写:
- 不重写,则按照父模板的内容效果显示
- 重写,则按照重写的内容效果进行显示
- 注意:模板继承时,服务器端的动态内容无法继承