MVT和MVC的区别


1.理解MVT和MVC

MVC(Model View Controller 模型-视图-控制器)

特点:把业务逻辑、模型数据、用户界面分离开来,让开发者将数据与表现**解耦**。

解耦:降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用

Model: 代表数据存取层,

View 代表的是系统中选择显示什么和怎么显示的部分,

Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。

image-20221006112114601

客户端发送请求,通过控制台分发请求,将请求发到数据库中,通过实体类,它与数据库具有一一对应的关系
然后数据库返回数据,将数据封装成对象,返回到控制器,控制器将其渲染到页面上,返回给客户。

MVT(Model View Templates 模型-视图-模板)

Models:数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效,是一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。

视图(views):业务逻辑层,该层包含存取模型及调取恰当模板的相关逻辑。用于封装负责处理用户请求及返回响应的逻辑。视图可以看作是前端与数据库的中间人,他会将前端想要的数据从数据库中读出来给前端。他也会将用户要想保存的数据写到数据库。

模板(templates):即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。模板层提供了设计友好的语法来展示信息给用户。使用模板方法可以动态地生成HTML。模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。

image-20221006112038348

客户端发送请求,django路由分发请求,视图函数接收参数,控制流程,通过实体类(与数据库有映射关系)将请求发送到
数据库中,数据库返回数据,将数据在MODL层封装成对象,返回到视图函数,视图函数将其渲染到模板层(页面),返回
给客户端。

2.区别:

​ MVC中的View的目的是「呈现哪一个数据」,而MTV的View的目的是「数据如何呈现」。也就是把MVT中的View分成了视图(展现哪些数据)和模板(如何展现)2个部分,而Contorller这个要素由框架自己来实现了,我们需要做的就是把(带正则表达式的)URL对应到视图就可以了,通过这样的URL配置,系统将一个请求发送到一个合适的视图。

MVC(控制层用来接收参数,控制流程,分发请求),MVT(模板层用来展示页面,省去了分发请求的步骤,将其交给了django路由)


文章作者: Nico
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Nico !
  目录