浅谈MVC&MTV设计模式
【摘要】 在目前基于 Python 语言的几十个 Web 开发框架中,几乎所有的全栈框架都强制或引导开发者使用 MVC 设计模式。所谓全栈框架,是指除了封装网络和线程操作,还提供 HTTP、数据库读写管理、HTML 模板引擎等一系列功能的 Web 框架,比如 Django、Tornado 和 Flask。MVC设计模式:最早由Trygve Teenskaug在 1978 年提出,上世纪 80 年代是程...
在目前基于 Python 语言的几十个 Web 开发框架中,几乎所有的全栈框架都强制或引导开发者使用 MVC 设计模式。
所谓全栈框架,是指除了封装网络和线程操作,还提供 HTTP、数据库读写管理、HTML 模板引擎等一系列功能的 Web 框架,比如 Django、Tornado 和 Flask。
MVC设计模式:
最早由Trygve Teenskaug
在 1978 年提出,上世纪 80 年代是程序语言 Smalltalk 的一种内部架构。后来 MVC 被其他领域借鉴,成为了软件工程中的一种软件架构模式。
MVC 把 Web 框架分为 3 个基础部分:
- 模型(Model):用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法,是 Web 应用程序中用于处理应用程序的数据逻辑的部分,Model 只提供功能性的接口,通过这些接口可以获取 Model 的所有功能。白话说,这个模块就是 Web 框架和数据库的交互层。
- 视图(View):负责数据的显示和呈现,是对用户的直接输出。
- 控制器(Controller):负责从用户端收集用户的输入,可以看成提供 View 的反向功能。
这三个部分互相独立,但又相互联系,使得改进和升级界面及用户交互流程,在Web开发过程任务分配时,不需要重写业务逻辑及数据访问代码。
MVC 在 Python 之外的语言中也有广泛应用,例如 VC++ 的 MFC,Java 的 Structs 及 Spring、C# 的 .NET 开发框架,都非常有名。
MTV 设计模式:
Django 对传统的 MVC 设计模式进行了修改,将视图分成 View 模块和 Template 模块两部分,将动态的逻辑处理与静态的页面展现分离开。而 Model 采用了 ORM 技术,将关系型数据库表抽象成面向对象的 Python 类,将表操作转换成类操作,避免了复杂的 SQL 语句编写。
MTV 和 MVC 本质上是一样的。
- 模型(Model):和 MVC 中的定义一样
- 模板(Template):将数据与 HTML 语言结合起来的引擎
- 视图(View):负责实际的业务逻辑实现
Django 的 MTV 模型组织可参考下图所示:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)