python html5 bootstrap 视频教程
德云社区 门户 行业资讯 行业标准 IT 标准 查看内容

Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架

2021-7-31 14:04| 发布者: digitser| 查看: 105| 评论: 0|原作者: liangsheng

摘要: Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架 Django(发音:)是一种用python语言编写的,可快速开发、实用雅洁的自由开源高级web应用框架(open source web framework)。Django可使你专注于编写应用程序 ...
自动立式分页纸箱赋码系统 ── 全自动 专业 立式分页 瓦楞纸 水性油墨 贴标 喷码 检测系统
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架

Django(发音:[`dʒæŋɡəʊ])是一种用python语言编写的,可快速开发、实用雅洁的自由开源高级web应用框架(open source web framework)。Django可使你专注于编写应用程序,而无需重新编写应用程序所需的每一个车轮。


Django采用MVC软件设计模式,即:模型M、视图V、控制器C;按BSD许可协议发布。但Django更关注模型(Model)、模板(Template)、视图(Views),这就是所谓的MTV模式。


Django的口号是:采用更少代码,简单、快速构建更好的Web应用程序。


智能编辑重构 批处理式 "数字 Python IDE" 集成开发环境 (集成高效 Cython PyInstaller 批处理小程序)

http://dt.digitser.cn/zh-CN/ide/idepy/index.html


Django根据比利时爵士音乐家Django Reinhardt命名,他是一名吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。


2005年7月Django以开源BSD许可协议发布。最初是被开发用于管理劳伦斯出版集团旗下的,一个以新闻内容为主的Web站点,即CMS(内容管理系统)软件。


2008年9月发布第一个正式版本Django 1.0。


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


01、出奇的快

Django旨在帮助开发者尽可能快的从应用程序概念到开发完成。


02、安全放心

Django十分重视安全性,会帮助开发人员避免许多常见安全问题。


03、极易扩展

最忙的Web站点,也可利用Django的灵活、快速、可扩展能力。


Django框架核心组件,包括:

01、用于创建模型的对象关系映射


02、为最终用户设计的完美管理界面


03、一流的 URL 设计


04、设计者友好的模板语言


05、缓存系统


Django可运行在Apache上,也可运行在支持WSGI、FastCGI的服务器上。Django支持多种数据库,包括 PostgreSQL、MySQL、Sqlite3、Oracle。Google App Engine也支持Django的某些部分,国内支持Django的平台有SAE(Sina App Engine)、BAE 百度应用引擎。


建议使用Python3对应Django最新版本,但也可使用Python2.7对应Django版本。注意:从Django 2.0开始,不再支持Python2.7。


20110325120343573.jpg

架构设计

Django是一个基于MVC构造的web应用框架。


但在Django中,控制器接受用户输入部分是由框架自行处理的;所以,Django更关注模型(Model)、模板(Template)、视图(Views),这就是所谓的MTV模式


#
层次
功能
职责
备注
01模型(Model)
数据存取层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为及数据之间的关系等。

02模板(Template)表现层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

03视图(View)
业务逻辑层存取模型及调取恰当模板的相关逻辑。
模型与模板之间的桥梁

从上表可以看出,Django视图(View)不处理用户输入,而仅仅决定要展现哪些数据给用户;而Django模板(Template)仅决定如何展现Django视图(View)指定的数据。


或者说, Django将MVC模式中的视图,进一步分解为Django视图(View)和Django模板(Template)两部分,分别决定 “展现哪些数据” 和 “如何展现”;因此,Django模板可根据需要随时替换,而不仅只局限于内置模板。


至于MVC控制器部分,由Django框架URLconf实现。URLconf机制使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意URL风格,不管是传统的,RESTful的,或是另类的。


Django框架把控制层给封装了,无非与数据交互这层,都是数据库表的读、写、删除、更新的操作。在写程序时,只要调用相应方法就行了,感觉十分方便。也就是说,程序员把控制层的东西交给Django自动完成了。 因此,编写很少的代码,就可完成很多的事情。


总之,MTV模式比MVC模式考虑的问题要更深一步,因为,MVC模式程序员大都是在写控制层的程序。现在,这个工作交给了框架,仅需写很少的调用代码,可大大提高工作效率。


2010051817540775.jpg

设计哲学

Django的主要目的,是简便、快速的开发数据库驱动的Web站点。


Django强调代码复用,多个组件可很方便的以“插件”形式服务于整个框架;Django有许多功能强大的第三方插件,你甚至可很方便的开发出自己的工具包。所以说,Django具有很强的可扩展性。Django还强调快速开发和DRY(Do Not Repeat Yourself)原则。


Django基于MVC的设计十分优美:

01、对象关系映射 (ORM, object-relational mapping)

以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可在Django中使用原始的SQL语句。


02、URL 分派

使用正则表达式匹配URL,你可设计任意的URL,没有框架的特定限定。


03、模版系统

使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。而且,还具有可继承性。


04、表单处理

你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例,生成相应表单。


05、Cache系统

可以挂在内存缓冲或其它的框架,实现超级缓冲──实现你所需要的粒度。


06、会话(session)

用户登录与权限检查,可快速开发用户会话功能。


07、国际化

内置国际化系统,可方便开发出多语言网站。


08、自动化的管理界面

无需花费事大量工作,去创建人员管理和更新内容。Django自带了一个ADMIN site,类似于内容管理系统


738b4710b912c8fcfe024858fd039245d78821b5.jpg.png

工作机制

01、用manage .py runserver 启动Django服务器时,就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls .py。


02、当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。


03、然后按顺序逐个匹配URLConf里的URLpatterns。如找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)。


04、最后view函数,负责返回一个HttpResponse对象。


版本历史

01、功能发行版(A·B、A·B+1、等)

大致每八个月发行一次。这些版本包含新功能、现有功能的改进。


02、补丁发行版(A.B.C、等)

根据需要发行,修复bug 和/或安全问题。


这些版本与相关功能发行版100%兼容,除非出于安全原因或为避免数据丢失。因此,“我应升级到最新补丁发行版吗?”的回答,永远是 “Yes”。


某些功能发行版会被指定为长期支持(LTS, long-term support)版本。这些版本将获得一段时间的安全性和应用数据丢失修复保障,通常为


Django 发行版
#
版本系列
最新版本
功能发行支持_结束时间
补丁发行版支持_结束时间
备注
07 1.9 1.9.5 2016年08月 2017年04月
06 1.8 LTS
1.8.12 2015年12月
2018年04月
05 1.7 1.7.11 2015年04月01日 2015年12月01日
041.61.6.11        2014年09月02日2015年04月01日
031.5        1.5.12        2013年11月06日2014年09月02日
02
1.4 LTS1.4.222013年02月26日2015年10月01日
011.31.3.72012年03月23日2013年02月26日

Django 未来计划开发版
#
版本系列
发行日期
功能发行支持_结束时间
补丁发行版支持_结束时间
备注
01 1.10 2016年08月 2017年04月 2017年12月
021.11 LTS
2017年04月     
2017年12月2020年04月
032.0   
2017年12月   
2018年08月2019年04月
042.1
2018年08月2019年04月2019年12月
052.2 LTS 2019年04月2019年12月2022年04月
063.0
2019年12月2020年08月2021年04月

扫一扫关注 德云社区 微信公众号

版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载。

路过

雷人

握手

鲜花

鸡蛋
AI人工智能 语音助理 人工翻译 教程

相关阅读

最新评论

Python 3.9.7 非官方中文文档编制 手册帮助文件 人工翻译
Python 3.9.7 非官方中文文档编制 手册帮助文件 人工翻译 网页背景由之前的白色主题,切换成黑色主题,保护视力及增强阅读体验。 感谢 德云社区 和 乐数软件 的支持,由本[40/2021-09-12]
Cython 模块扩展 - 编程语言 替代实现 应用领域 汇总一览
Python 模块扩展 - 编程语言 替代实现 应用领域 汇总一览 Python 本身是一种编程语言规范,可以使用其它编程语言实现它或扩展它;譬如:采有 Python C Java .Net 等重实现[22/2021-09-11]
Python 3.4.4 非官方中文文档编制 手册帮助文件 人工翻译
Python 3.4.4 非官方中文文档编制 手册帮助文件 人工翻译 网页背景由之前的白色主题,切换成黑色主题,保护视力及增强阅读体验。 感谢德云社区 广州德数 乐数软件 的支持[63/2021-08-29]
从 Qt 6.0 起移除QtWidgets::QDesktopWidget 之后使用QtGui::QScreen 代替
从 Qt 6.0 起移除QtWidgets :: QDesktopWidget 之后使用QtGui :: QScreen 代替 QtWidgets :: QDesktopWidget 在 Qt 5.9 中还有不少独立定义函数、信号、重实现保护函数,但[53/2021-08-24]
gb18030-2005 - 含少数民族文字 70000个汉字的中文字符编码集
gb18030-2005 - 含少数民族文字 70000个汉字的中文字符编码集 GB18030有两个版本:GB18030-2000和GB18030-2005。 GB18030-2005与GB18030-2000的编码体系结构是完全相同的[82/2021-08-12]
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架 Django(发音:)是一种用python语言编写的,可快速开发、实用雅洁的自由开源高级web应用框架(open source web fr[105/2021-07-31]
Wing IDE - 快速 功能强大的Python Django PyQt集成开发环境
Wing IDE - 快速 功能强大的Python Django PyQt集成开发环境 Wing IDE是Python语言集成开发环境IDE,包含大量语法标签高亮显示。与其他类似IDE相比,其最大特色是可以调试[49/2021-07-31]
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 更新日志
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 更新日志 本文档编制还适于 PyPDF3 新版用户。 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译[42/2021-07-28]
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 全人工翻译
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 全人工翻译 本文档编制还适于 PyPDF3 新版用户。 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻[96/2021-07-28]
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 全人工翻译
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 OpenPyXL 3.0.7。 OpenPyXL 3.0.[80/2021-07-28]
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 更新日志
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 OpenPyXL 3.0.7。 OpenPyXL 3.0.7 [47/2021-07-28]
Microsoft .NET 4.6.1 for Win7 SP1-10 x86-x64-AllOS-ENU 官方离线安装包
Microsoft .NET 4.6.1 for Win7 SP1-10 x86-x64-AllOS-ENU 官方离线安装包 注意:Microsoft .NET 4.6.2 不支持 Win7 SP1。 Microsoft .NET 4.6.1 发行于 2015/11/17,支持[63/2021-07-18]
Visual Studio Community 2017 2019 - 简化版微软 VC 构建编译工具
Visual Studio Community 2017 2019 - 简化版微软 VC 构建编译工具 Visual Studio Community 2017 版和 Visual Studio Community 2019 版安装包体积过大,安装占用空间多时[53/2021-07-18]
PotPlayer - 功能强大 内置解码器齐全 以VC++编写的播放器
PotPlayer - 功能强大 内置解码器齐全 以VC++编写的播放器 PotPlayer 是 KMPlayer 的 (韩国) 原制作者姜龙喜先生进入 Daum 公司后用 C++ 完全重写的新一代播放器作品。PotP[205/2021-06-20]
数字 Python IDE 2021 注册机 注册码生成器 附详细破解方法
数字 Python IDE 2021 注册机 注册码生成器 附详细破解方法 完整 完美破解补丁 注册机 注册码生成器,破解后与 VIP 客户在功能方面没有任何区别。 数字 Python IDE 和数[142/2021-06-17]

Archiver|Sitemap|小黑屋|德云社区   

GMT+8, 2021-9-24 23:22 , Processed in 0.030802 second(s), 28 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

返回顶部