Django MVC和MTV架构模式(新手必看)
当建筑工人盖一座房子时,需要先确定采用哪一种建筑结构,例如,砖混结构、砖木结构、钢筋混凝土结构等。
这里所说的建筑结构,很明显不是已经建造完成的房屋,而是所遵循的一种架构模式。一般来说,Web 应用框架就像盖好的房子一样,有着特定的结构,遵循某种架构模式。
它们各司其职,以插件式、松耦合的方式连接在一起。
MVC 模式的请求与响应过程如下图所示:

图 1 MVC 模式的请求与响应过程
当用户通过浏览器向服务器发起请求,控制器在接受请求后,将会调用模型获取数据,并将取得的数据传给视图进行渲染,最终将形成的页面通过控制器发送给浏览器,呈现给用户。
Django 是遵循 MVC 软件架构模式的框架。
开发者所需要关注的是模型(Model)、模板(Template)和视图(View):
这种设计模式称为 MTV 模式。MTV 模式的请求与响应过程如下图所示:

图 2 MTV 模式的请求与响应过程
当用户通过浏览器向服务器发起请求,Django 的 URL 分发器会将每一个 URL 的页面请求分发给相应的视图函数进行处理。视图函数将会调用模型获取数据,并将数据渲染到模板,最终形成的页面被发送到浏览器,呈现给用户。
提示,URL(Uniform Resoure Locator,统一资源定位符),通俗理解就是网络资源地址,也就是通常所说的网址。
由此可以看出,MTV 模式实际上仍然遵循 MVC 架构模式:
这里所说的建筑结构,很明显不是已经建造完成的房屋,而是所遵循的一种架构模式。一般来说,Web 应用框架就像盖好的房子一样,有着特定的结构,遵循某种架构模式。
MVC软件架构模式
MVC(Model View Controller)是一种常见的软件架构模式,这种架构模式把软件系统分为三个基本部分,即模型(Model)、视图(View)和控制器(Controller):- 模型(Model):负责业务对象与数据库的关系映射(ORM);
- 视图(View):负责客户端页面的显示;
- 控制器(Controller):接收用户的输入,调用模型与视图响应客户端的请求。
它们各司其职,以插件式、松耦合的方式连接在一起。
MVC 模式的请求与响应过程如下图所示:

图 1 MVC 模式的请求与响应过程
当用户通过浏览器向服务器发起请求,控制器在接受请求后,将会调用模型获取数据,并将取得的数据传给视图进行渲染,最终将形成的页面通过控制器发送给浏览器,呈现给用户。
Django 是遵循 MVC 软件架构模式的框架。
Django的MTV模式
在 Django 中,控制器接收用户输入的部分由框架自行处理,也就是说,Django 本身扮演了一部分控制器的角色。开发者所需要关注的是模型(Model)、模板(Template)和视图(View):
- 模型(Model):负责业务对象与数据库的关系映射(ORM);
- 模板(Template):负责客户端页面的显示;
- 视图(View):负责业务逻辑,能够根据需求调用模型和模板。
这种设计模式称为 MTV 模式。MTV 模式的请求与响应过程如下图所示:

图 2 MTV 模式的请求与响应过程
当用户通过浏览器向服务器发起请求,Django 的 URL 分发器会将每一个 URL 的页面请求分发给相应的视图函数进行处理。视图函数将会调用模型获取数据,并将数据渲染到模板,最终形成的页面被发送到浏览器,呈现给用户。
提示,URL(Uniform Resoure Locator,统一资源定位符),通俗理解就是网络资源地址,也就是通常所说的网址。
由此可以看出,MTV 模式实际上仍然遵循 MVC 架构模式:
- MTV 模式中的模型对应 MVC 模式中的模型;
- MTV 模式中的模板对应 MVC 模式中的视图;
- MTV 模式中的 URL 分发器与视图对应 MVC 模式中的控制器。