前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >框架介绍

框架介绍

作者头像
全栈程序员站长
发布2022-07-21 11:13:07
5640
发布2022-07-21 11:13:07
举报

大家好,又见面了,我是你们的朋友全栈君。

MVC模式

代码语言:javascript
复制
MVC(Model-view-controller)是一种在软件工程中广泛使用的设计模式。特别适合于GUI设计和WEB应用设计,可以方便的修改应用的表示层而不影响业务的逻辑。或者修改底层业务逻辑而不
影响其他部分。现在新的WEB开发框架很多都采用MVC模式
MVC模式介绍

Django中的MVC模式分为三个部分

代码语言:javascript
复制
Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM)

         在模型层次上,包含了业务逻辑流程和状态,这些模型包含应用处理数据的方法。业务模型的设计是MVC模式的设计核心

     Template(模板):放所有的html文件

View(视图):负责业务逻辑,并在适当的时候调用Model和Template

        视图层次包含最终用户的操作界面,包含输入数据和输出显示等。对于具体的应用,可能有多个视图显示

Controller(控制层):可以实现对应用的具体的控制。控制层次可以将模型层次和视图层次结合起来,共同完成特定的应用请求。

  此外,Django还有一个URL分发器。它的作用是将一个个URL的页面请求分别发给不同的Views处理,Views再调用相应的Model和Template。

<span role="heading" aria-level="2">框架介绍
<span role="heading" aria-level="2">框架介绍
<span role="heading" aria-level="2">框架介绍
<span role="heading" aria-level="2">框架介绍
MVC的优劣势

优点

代码语言:javascript
复制
1.各施其职,互不干涉

在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。

2.有利于开发中的分工

在MVC模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。

3.有利于组件的重用

分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。

缺点

代码语言:javascript
复制
MVC的不足体现在以下几个方面:

(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

(4) 目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。MVC

MTV模式

Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。

Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。

Django的MTV模式

Model(模型):负责业务对象与数据库的对象(ORM)

Template(模版):负责如何把页面展示给用户

View(视图):负责业务逻辑,并在适当的时候调用Model和Template

此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

Django框架图示
<span role="heading" aria-level="2">框架介绍
<span role="heading" aria-level="2">框架介绍

APP

一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码。

命令行创建
代码语言:javascript
复制
python manage.py startapp app01
使用PyCharm创建
<span role="heading" aria-level="2">框架介绍
<span role="heading" aria-level="2">框架介绍

在下方弹出的命令窗口输入:

代码语言:javascript
复制
startapp app01
路由
视图
模板
模型

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/124467.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年3月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MVC模式
    • MVC模式介绍
      • MVC的优劣势
      • MTV模式
        • Django的MTV模式
          • Django框架图示
          • APP
            • 命令行创建
              • 使用PyCharm创建
                • 路由
                  • 视图
                    • 模板
                      • 模型
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档