返回介绍

课程介绍

发布于 2023-06-06 16:30:43 字数 2591 浏览 0 评论 0 收藏 0

欢迎学习 django 课程

MVC 简介

MVC 的全拼为 Model-View-Controller,最早由 Trygve Reenskaug 在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。

随着标准输入输入设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。

现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小。

现在的MVC结构中,模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。当模型发生改变时,它会通知视(View),并且为视提供查询模型相关状态的能力。

同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。一个视(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视负责维持数据表现的一致性。视同时将用户要求告知控制器(Controller)。

控制器(Controller)定义了应用程序的行为;它负责对来自视的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。

模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视作为对用户请求的应答。通常一组相关功能集对应一个控制器。

MVC 框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容

当前主流的开发语言如Java、PHP、Python 中都有 MVC 框架

M 全拼为 Model,主要封装对数据库层的访问,内嵌 ORM 框架,实现面向对象的编程来操作数据库,不用考虑数据库的差异性,简单配置就可以完成数据库切换

V 全拼为 View,用于封装结果,内嵌了模板引擎,实现动态展示数据

C 全拼为 Controller,用于接收GET或POST请求,处理业务逻辑,与 Model 和 View 交互,返回结果

mvc

Django 简介

Django,发音为 [`dʒæŋɡəʊ],是用 python 语言写的开源 web 开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在 BSD 许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于 Django 在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志 SD Times 评选为 2013 SD Times 100,位列 API、库和框架 分类第6位,被认为是该领域的佼佼者。

Django 的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django 有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。

对于 Django 框架遵循 MVC 设计,并且有一个专有名词:MVT

M全拼为Model,与MVC中的M功能相同,负责数据处理,内嵌了ORM框架

V全拼为View,与MVC中的C功能相同,接收HttpRequest,业务处理,返回HttpResponse

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html,内嵌了模板引擎

差异就在于黑线黑箭头标识出来的部分

mvt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文