一、MVC和MTV
1、MVC
MVC代表model、view、controler(模型、视图、控制器)模式。作用:降低模块间的耦合度(解耦)。
- M:对数据库层的封装
- V:向用户展示结果(what、how)
- C:处理请求、获取数据、返回数据
2、MTV
MTV代表model、template、view(模型、模板、视图)模式。作用:降低模块间的耦合度(解耦)。
- M模型层(Model):负责数据库交互
- T模板层(Template):负责呈现内容到浏览器(how)
- V视图层(View):核心,负责接收请求、获取数据、返回数据(what)
二、模板层
模板是可根据字典数据动态变化的html网页。模板可根据视图中传递的字典数据动态生成相应的动态html网页。
1、模板配置
(1)创建模板文件夹
路径:<项目名>/templates
(2)在settings.py中TEMPLATE配置项
- BACKEND:模板引擎
- DIRS:模板的搜索目录(一或多个)
- APP_DIRS:是否要在应用中的template文件夹中搜索模板文件
- OPTIONS:有关模板的选项
配置项需修改的部分为DIRS,设置DIRS:
'DIRS':[os.path.join(BASE_DIR.’templates’)],
注:
(a)BASE_DIR:当前项目的绝对路径。
(b)Django2中有import os,Django3中from pathlib import Path,故在Django3中解决os找不到的方法:
方法一:import os
方法二(建议):’DIRS’: [Path(BASE_DIR, ‘templates’)]
2、模板的加载方式
方法一:通过loader获取模板,通过HttpResponse进行响应。
视图函数中: