博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
框架介绍
阅读量:7041 次
发布时间:2019-06-28

本文共 1586 字,大约阅读时间需要 5 分钟。

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。

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框架图示

 APP

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

命令行创建

python manage.py startapp app01

使用PyCharm创建

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

startapp app01

 路由

 

视图

 

模板

 

模型

转载于:https://www.cnblogs.com/bypp/p/8671605.html

你可能感兴趣的文章
PyTorch 实战-用 Numpy 热身
查看>>
TensorFlow 多 GPU 处理并行数据
查看>>
整理一些计算机基础知识!
查看>>
史上最快! 10小时大数据入门(二)-初识Hadoop
查看>>
HyperLedger Fabric 1.2 官方End-2-End运行(8)
查看>>
告知服务器意图的 HTTP 方法
查看>>
Java编程思想-Chapter15-泛型
查看>>
js浮点数存储精度丢失原理
查看>>
友达光电(昆山)第六代LTPS液晶面板厂 成功点亮首片5.5吋Full HD面板 缔造最快速量产记录 展现领先LTPS技术实力...
查看>>
Chrome 暗黑模式最新进展:现在可自动跟随系统主题设置
查看>>
Event Loop是个什么玩意:从 Vue 的 nextTick 说起
查看>>
前PS VR伦敦团队另立门户,创立新的VR工作室
查看>>
jSearch(聚搜) v0.5.0 发布,多项更新和体验优化
查看>>
日志收集(ElasticSearch)串联查询 MDC
查看>>
5.For loops
查看>>
抛砖引玉之~sftp
查看>>
linux mysql 操作命令
查看>>
[20180126]内核参数tcp_keepalive.txt
查看>>
Leetcode打卡 | No.016 最接近的三数之和
查看>>
9.数据库服务器部署之------3步实现远程访问
查看>>