MVC模型:
MVC(Model View Controller 模型-视图-控制器)是一种Web架构的模式,它把业务逻辑、模型数据、用户界面分离开来,让开发者将数据与表现解耦,前端工程师可以只改页面效果部分而不用接触后端代码,DBA可以重新命名数据表并且只需更改一个地方,无需从一大堆文件中进行查找和替换。
MVC将web应用分为三层,分别是模型,视图,控制器。松耦合的连接方式,类似于插件的感觉。可以提高代码复用的能力。
MVC特点是单向性:
1. 浏览器发送请求
2. 控制器和模型交互获取数据
3. 控制器调用视图
4. 视图渲染数据并返回
MTV模型:
和Rails、Spring、Laravel等其他语言的Web框架不一样,在Python中,基本上都使用了MVC的变种MTV(Model Templates View 模型-模板-视图)
以django的MTV为例,MTV分别代表了:模型,模板,视图
1. Model:和MVC的Model一样,处理与数据相关的所有事务:如何存取、如何确认有效性、包含哪些行为以及数据之间的关系等。
2. Template:处理与表现相关的决定,如何在页面或其他类型文档中进行显示出来。
3. View:处理业务逻辑,视图就是一个特定URL的回调函数,回调函数中描述数据。从Model取出对应的数据,调用相关的模板。它就是Contorller要调用的那个用来做Model和View之间的沟通函数,从而完成控制。
【注】MVC与MTV的view目的不同:
MVC中的View的目的是:呈现哪一个数据。
MTV的View的目的是:数据如何呈现。