天天看点

Django框架设计创建 Web 应用程序的两种模式:MTV和MVC

一、MTV框架

MTV(Model Templates Views):

(1)M : model 数据模型,例如 orm中的模型类。

(2)T: templates 模板: 例如 html页面。

(3)V: view 视图: 使用函数 例如: CBV 、FBV。

Model(模型) --  Templates(模版) --Views(视图)
           

Django是MTV框架。

Django框架设计创建 Web 应用程序的两种模式:MTV和MVC

二、MVC框架:

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表(orm))。
  • View(视图)显示数据(数据库记录)。---->对应MTV中的 T
  • Controller(控制器)处理输入(写入数据库记录)。—>对应MTV中的 V

MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

通常模型对象负责在数据库中存取数据。

  • View(视图)是应用程序中处理数据显示的部分。

通常视图是依据模型数据创建的(前端网页)。

  • Controller(控制器)是应用程序中处理用户交互的部分。

通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据(映射,模式渲染等)。

三、Django处理顺序

  1. wsgi

    socket请求处理

  2. 控制器(django框架本身)

    控制用户输入,url匹配,通过映射列表将一个请求发送到一个合适的视图;

  3. views --Views

    python程序,向模型和模板发送(或获取)数据;

  4. 模型绑定 --Model

    数据库存取数据

  5. 模板引擎 --Templates

    用于将内容与展现分离,描述了数据如何展现(如网页模板);

  6. 模式渲染 --Views

    将模板和数据整合,形成最终网页;

  7. 控制器(django框架本身)

    返回用户展示。

    Django框架设计创建 Web 应用程序的两种模式:MTV和MVC

​四、区别

MVC即模型-视图-控制器模式,就是为那些需要为同样的数据提供多个视图的应用程序而设计的。它很好地实现了数据层与表示层的分离,特别适用于开发与用户图形界面有关的应用程序。控制器用来处理用户命令以及程序事件;模型维护数据并提供数据访问方法;视图用于数据的显示。

MTV即模型-模版-视图模式,其标准名称是有争议的。在MVC的解释中,视图描述了展现给用户的数据,是指所看到的数据,而不是如何看见它。在python中视图是指对某一特定URL的回调函数,因为回调函数描述了所要展现的数据。模版用于将内容与展现分离。在django中,视图描述了要展现的数据,而视图一般转交给模版。模版描述了数据如何展现。控制器则是指django框架本身,通过URL配置,系统将一个请求发送到一个合适的视图。

Django中的MTV 是根据MVC模式演变过来的。

使用MVC 或MTV 模式的好处,解耦合。

如果想要和我交流,就关注我的微信公众号:梓栋Coder(id:cyttlian)

继续阅读