• 售前

  • 售后

热门帖子
入门百科

Django MTV和MVC的区别详解

[复制链接]
山东大鲤鱼 显示全部楼层 发表于 2021-10-26 13:46:08 |阅读模式 打印 上一主题 下一主题
在上一节《Django是什么》中,我们对 Django 的诞生以及 Web 框架的概念有了基本的相识,本节我们先容 Django 的设计模式,也就是 MTV。
在 Web 开辟范畴还有别的一个非常著名的设计模式——MVC,它和 MTV 又有什么区别呢?这也是本节关注的重点内容。

1. MVC设计模式


我们先对 MVC 设计模式举行先容,它是 Web 设计模式的经典之作,MTV 模式也是在它的基础上衍生而来。
MVC 是 Model-View-Controller 的缩写,其中每个单词都有其不同的含义:
      
  • Modle 代表数据存储层,是对数据表的定义和数据的增删改查;  
  • View 代表视图层,是体系前端显示部分,它负责显示什么和如何举行显示;  
  • Controller 代表控制层,负责根据从 View 层输入的指令来检索 Model 层的数据,并在该层编写代码产生效果并输出。

图1:MVC 设计模式表示图

MVC 设计模式的哀求与相应过程形貌如下:
      
  • 用户通过浏览器向服务器发起 request 哀求,Controller 层担当哀求后,同时向 Model 层和 View 发送指令;  
  • Mole 层根据指令与数据库交互并选择相应业务数据,然后将数据发送给 Controller 层;  
  • View 层接收到 Controller 的指令后,加载用户哀求的页面,并将此页面发送给 Controller 层;  
  • Controller 层接收到 Model 层和 View 层的数据后,将它们构造成相应格式发送给浏览器,浏览器通过剖析后把页面展示出来。
MVC 的 3 层之间细密相连,但又相互独立,每一层的修改都不会影响其它层,每一层都提供了各自独立的接供词其它层调用,MVC 的设计模式低沉了代码之间的耦合性(即关联性),增加了模块的可重用性,这就是 MVC 的设计模式。

2. MTV设计模式


那么 Django 的 MTV 又是怎么回事呢?下面解说 Django 的设计模式。
Django 借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个条理,也就是 MTV 设计模式;
      
  • Model:数据存储层,处理全部数据干系的业务,和数据库举行交互,并提供数据的增删改查;  
  • Template:模板层(也叫表现层)详细来处理页面的显示;  
  • View:业务逻辑层,处理详细的业务逻辑,它的作用是连通Model 层和 Template 。


图2:Django MTV 设计模式表示图

我们按照 MVC 的设计模式对 MTV 举行分析,MTV 设计模式中,用 View 层代替了 Controller 层的位置,用 Template 层代替了原来 View 层的位置。
初次打仗 Django 的设计模式的人,可能会对 Template 层产生疑问,实在 Template 英文的含义就是“模板”的意思,你可以简单明白成,它是一个 HTML 页面 ,HTML 页面的渲染在视图层完成。
同样我们也对 MTV 设计模式的哀求与相应过程举行形貌:
      
  • 用户通过浏览器对服务器发起 request 哀求,服务器接收哀求后,通过 View 的业务逻辑层举行分析,同时向 Model 层和Template 层发送指令;  
  • Mole 层与数据库举行交互,将数据返回给 View 层;  
  • Template 层接收到指令后,调用相应的模板,并返回给 View 层;  
  • View 层接收到模板与数据后,首先对模板举行渲染(即将相应的数据赋值给模板),然后构造成相应格式返回给浏览器,浏览器举行剖析后并终极出现给用户。
通过以上两种设计模式的比力, 我们可以得出 MTV 是 MVC 的一种细化,将原来 MVC 中的 V 层拿出来举行分离,视图的显示与如何显示交给 Template 层,而 View 层更专注于实现业务逻辑。其着实 Django 是有 Controller 层的,只不过它由框架本身来实现,以是我们不消关心它。Django 更关注于M、T 和 V。
到此这篇关于Django MTV和MVC的区别详解的文章就先容到这了,更多干系Django MTV和MVC内容请搜刮草根技术分享从前的文章或继续浏览下面的干系文章渴望各人以后多多支持草根技术分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作