MTV和MVC

本文对比了MTV(Model-Templates-View)和MVC(Model-View-Controller)两种设计模式,解释了它们各自的角色和职责,以及在Django框架中的应用。MTV模式中,Templates对应View,而MVC模式中,View对应Controller。两者都强调组件间的松耦合,有利于代码的维护和重用。Django中的URL分发器进一步协调视图和模型的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTV模式与MVC模式

1.什么是MTV
MTV模式就是Model(模型),Templates(模板),View(视图)。
Model:用于封装与应用程序业务逻辑相关的数据及数据处理方法,是web应用程序中用于处理应用程序的数据逻辑部分,Modle通常只提供功能性接口,通过该接口可以获得Modle所有功能。Modle其实就是负责数据持久化到数据库。
Templates:负责显示数据和呈现,View对齐直接输出。
View:负责用户端请求,可以看成反向功能,主要处理用户交互。View承载数据逻辑。
在这里插入图片描述注意:Django中还有一个url分发器(也可以叫做路由),主要用来将一个个URL页面的请求分发给不同的View进行处理,View再调用相应的Modle和Template
在这里插入图片描述
1,Web服务器(中间件)收到一个http请求
2,Django在URLconf里查找对应的视图(View)函数来处理http请求
3,视图函数调用相应的数据模型来存取数据、调用相应的模板向用户展示页面
4,视图函数处理结束后返回一个http的响应给Web服务器
5,Web服务器将响应发送给客户端

这种设计模式关键的优势在于各种组件都是松耦合的。这样,每个由 Django驱动的Web应用都有着明确的目的,并且可独立更改而不影响到其它的部分。
比如,开发者更改一个应用程序中的 URL 而不用影响到这个程序底层的实现。设计师可以改变 HTML页面的样式而不用接触Python代码。
数据库管理员可以重新命名数据表并且只需更改模型,无需从一大堆文件中进行查找和替换。
2.什么是MVC
MVC就是Model(模型),View(视图),Controller(控制器)
Model:用于封装与应用程序业务逻辑相关的数据及数据处理方法,是web应用程序中用于处理应用程序的数据逻辑部分,Modle通常只提供功能性接口,通过该接口可以获得Modle所有功能。Modle其实就是负责数据持久化到数据库。
View:负责用户端请求,可以看成反向功能,主要处理用户交互。View承载数据逻辑。
Controller:负责从用户端收集用户输入,可以看成提供View方向功能,主要处理用户交互。
MVC设计模式是一种软件设计的典范,用一种业务逻辑,使数据,界面线束分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面与用户交互的同时,不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入,处理输出功能在一个逻辑的图形化界面中。
MVC核心思想就是解耦。
MVC优点:降低各模块之间的耦合性,方便变更,更容易重构代码,最大程度实现了代码的重用。
下面是MVC的设计模式:
在这里插入图片描述
3.MTV和MVC的联系与区别
本质上来说MVC和MTV没什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些与不同。(MTV模式中T对应V,MVC模式中V对应C)
注意:Django中还有一个url分发器(也可以叫做路由),主要用来将一个个URL页面的请求分发给不同的View进行处理,View再调用相应的Modle和Template。
下图是甬道图:
甬道图
1.当用户使用URl,通过控制器匹配相应的视图。
注意:可以看到在这一次的信息传递中跨过了模板,那么为什么为什么模板夹在视图(View)和控制器(Controller)中间呢?因为最终的结果要以模板的形势展现给用户。但是模板不是用户输入URL以后就产生的东西。
2.匹配相应的视图后再去Modles里取数据。
3.Modles从数据库中提取数据。
注意:这一步可以单独在写一个持久化,Modle和数据库可以不在一个服务器中。
4.Modles将数据反馈给视图。
5.Views找到对应的模板,然后模板再把Views里的数据渲染到模板里。
6.模板将成型后的html文件呈现给用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值