框架介绍

MVC模式MVC模式介绍Django中的MVC模式分为三个部分此外,Django还有一个URL分发器。它的作用是将一个个URL的页面请求分别发给不同的Views处理,Views再调用相应的Mod

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

MVC模式

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

MVC模式介绍

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

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">框架介绍

MVC的优劣势

优点

1.各施其职,互不干涉

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

2.有利于开发中的分工

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

3.有利于组件的重用

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

缺点

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">框架介绍

 APP

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

命令行创建

python manage.py startapp app01

使用PyCharm创建

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

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

startapp app01

 路由

 

视图

 

模板

 

模型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 7、常见面试口语提问问题汇总

    一、pleaseintroduceyourself. Goodmorning!Itisreallymyhonortohavethisopportunityforaninterview;IhopeIcanmakeagoodperformancetoday.I’mconfidentthatIcansucceed.NowIwil…

    2022年4月16日
  • setdefault函数的用法及理解

    setdefault函数的用法及理解dict.setdefault(key,default=None)功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于字典中,将读出该键原来对应的值,default的值不会覆盖原来已经存在的键的值。参数:key—-要查找的键default—–查找的键不存在时用于设置的默认值使用方法示例:(以下使用方法是我理解setdefault函…

    2022年10月27日
  • js倒计时代码最简单的(js倒计时10秒代码)

    第一种:精确到秒的javascript倒计时代码HTML代码:离2010年还有:startclock()vartimerID=null;vartimerRunning=false;functionshowtime(){Today=newDate();varNowHour=T

    2022年4月10日
  • anaconda pycharm设置编译器_anaconda默认环境

    anaconda pycharm设置编译器_anaconda默认环境Pycharm是一个非常好用的Python编译运行IDE,anaconda则用于管理Python中各种有用的包。下面讲讲在Ubuntu系统下让Pycharm能够使用anaconda管理的各种包。1找到编译器选项首先打开Pycharm然后点击File-&amp;amp;amp;amp;amp;gt;settings,然后就可以看到下图所示界面:…

    2022年8月28日
  • 变量命名神器Codelf

    变量命名神器Codelf网站首页

    2022年5月4日
  • 解决win10升级后无法打开VC问题「建议收藏」

    解决win10升级后无法打开VC问题「建议收藏」最近有不少小伙伴问到:“为什么win10自动升级后,我之前安装的VC怎么打不开了,一直报‘应用程序无法正常启动(0xc0000142)之类的错误’”。有的小伙伴把之前安装过的VC卸载后重装,然而重装后并没有解决问题,VC仍然打不开,还是报上面的错误。博主亲自尝试的一翻,并将报错的截图献给大家(有图有真相),对于有过经历的小伙伴一定很熟悉吧。       好了,咱们就直接进入主题

    2022年8月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号