当前位置 博文首页 > 文章内容

    深入浅析Django MTV模式

    作者:shunshunshun18 栏目:未分类 时间:2021-09-04 14:43:26

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    MVC模式

    MVC, 全名Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model), 视图(View)和控制器(Controller), 具有耦合性低,重用性高、生命周期成本低等优点。

    在这里插入图片描述

    MVT模式

    模型:数据存储层,处理与数据相关的所有事务,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。负责业务对象与数据库的对象(orm)。
    模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。
    Django作为Web框架,需要一种很便利的方法动态的生成HTML网页,因此有了模板这个概念。模板包含所需HTML的部分代码以及一些特殊的语法,特殊语法用于描述如何将视图传递的数据动态插入HTML网页中。
    Django可以配置一个或多个模板引擎(甚至是0个,如前后端分离,Django只提供API接口,无需使用模板引擎),模板引擎有Django模板语言(DTL)和Jinja2。Django模板语言是Django内置的功能之一,Jinja2是当前Python流行的模板语言。
    视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁。主要负责处理用户请求和生成相应的相应内容,然后在页面或其他类型文档中显示。也可以理解为视图是MVC架构里面的C部分(控制器),主要处理功能和业务上的逻辑。我们习惯使用视图函数处理HTTP请求,记载视图里定义def函数,这种方式成为FBV(Function Base Views)。

    在这里插入图片描述

    (引自:https://zhuanlan.zhihu.com/p/362268440

    Django框架的基础就是MTV模式, 将开发任务分为三大部分:

    • Model:负责业务对象和数据库的关系映射(ORM),与MVC模式中的Model是等同。
    • Template:负责如何把页面展示给用户(HTML),这部分类似与MVC中的视图。
    • View:负责业务逻辑,并在适当时候调用Model和Template。跟MVC中的Controller等同。

    在这里插入图片描述

    首先,我们要知道:MVT是什么?
    昨天也提到了:
    M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
    V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
    T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

    MVT是一个前沿的软件架构模式,它具有高效的ORM(Object Relation Mapping)数据操作,将程序中的对象【object】和数据库中的表【relation】建立关联关系,关系【mapping】的过程称为ORM.

    为什么使用MVT结构?

    1.实现高内聚低耦合易于开发
    在实际开发过程中,需要根据不同的需求对原版本进行迭代,MVT把对数据库操作,请求处理和页面布局进行了分离,方便了对代码的更新,不需要牵一发而动全身,易于代码的维护。
    2.提高开发效率
    做到了前后端的分离,易于代码的整合.方便使用者分工合作。也提高了重用性,对于相似部分方便复用,提高了开发效率。
    那么,你是不是还记住了那句话“Django框架遵循MVC设计”?MVC是个什么玩意儿?
    M表示Model,主要用于对数据库层的封装;
    V表示View,用于向用户展示结果;
    C表示Controller,是核心,用于处理请求、获取数据、返回结果。

    关于MVC,有3点需要注意:

    1.大部分开发语言中都有MVC框架;
    2.MVC框架的核心思想是:解耦;
    3.能降低各功能模块之间耦合性,方便变更,更容易重构代码,最大程度实现代码重用。

    最后,Django架构模式:
    MVT架构模式:在MVC基础上,对控制器controller进行了封装,增加了模块功能【Templates】实现前端网页【Html】
    MVC架构模式:数据model–>视图views–>数据交互–>服务器–>控制器controller–>相应函数的调用。