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

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

2021-7-31 14:04| 发布者: digitser| 查看: 821| 评论: 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人工智能 语音助理 人工翻译 教程

相关阅读

最新评论

Qt 6.5.1 官方中文文档编制 手册教程 帮助文件 人工翻译
Qt 6.5.1 官方中文文档编制 手册教程 帮助文件 人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Qt 6.5.1。 Qt 6.5.1 中文文档编制[35/2024-10-24]
Qt 6.5.1 官方中文文档编制 手册教程 人工翻译更新日志
Qt 6.5.1 官方中文文档编制 手册教程 人工翻译更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Qt 6.5.1。 Qt 6.5.1 中文文档编制采[24/2024-10-24]
数字 Python IDE 2024 注册机 注册码生成器 附详细破解方法
数字 Python IDE 2024 注册机 注册码生成器 附详细破解方法 数字 Python IDE 目前还在不断研发 进步中,虽不太成熟,但其新理念很有特色 特别适于多版本 多文档 多工程并行[22/2024-10-24]
数字翻译 2024 注册机 注册码生成器 内存破解器 附详细用法
数字翻译 2024 注册机 注册码生成器 内存破解器 附详细用法 数字翻译目前还在不断研发 进步中,虽不太成熟,但其新理念很有特色 特别适于 HTML 文档本地化 (面向高精度 超[24/2024-10-24]
数字 Python IDE 2023 注册机 注册码生成器 附详细破解方法
数字 Python IDE 2023 注册机 注册码生成器 附详细破解方法 数字 Python IDE 目前还在不断研发 进步中,虽不太成熟,但其新理念很有特色 特别适于多版本 多文档 多工程并行[22/2024-10-24]
数字翻译 2023 注册机 注册码生成器 内存破解器 附详细用法
数字翻译 2023 注册机 注册码生成器 内存破解器 附详细用法 数字翻译目前还在不断研发 进步中,虽不太成熟,但其新理念很有特色 特别适于 HTML 文档本地化 (面向高精度 超[21/2024-10-24]
CSS3 官方中文文档编制 手册教程 人工翻译 更新日志
CSS3 官方中文文档编制 手册教程 人工翻译 更新日志 CSS3 中文文档编制采用机器辅助 + 全人工翻译,完全采用 数字翻译 的文档翻译流程进行汉化 (未采用任何第 3 方工具),[1592/2022-07-31]
CSS3 官方中文文档编制 手册教程 帮助文件 人工翻译
CSS3 官方中文文档编制 手册教程 帮助文件 人工翻译 CSS3 中文文档编制采用机器辅助 + 全人工翻译,完全采用 数字翻译 的文档翻译流程进行汉化 (未采用任何第 3 方工具),[1725/2022-07-31]
SolidWorks 2020 非对称Conic Rho圆角 抽壳出现模型穿刺
SolidWorks 2020 非对称Conic Rho圆角 抽壳出现模型穿刺 标准对称圆角最常用,但有时偶尔也会用到非对称圆角。 特别是模具、五金、电子、手饰、汽车、家具、玩具、等对圆[1417/2022-05-25]
NumPy 1.22 官方中文文档编制 手册帮助 更新日志
NumPy 1.22 官方中文文档编制 手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 NumPy 1.22。 NumPy 1.22 中文文档编制采用[997/2022-05-22]
NumPy 1.22 官方中文文档编制 手册帮助 全人工翻译
NumPy 1.22 官方中文文档编制 手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 NumPy 1.22。 NumPy 1.22 中文文档编制采[1167/2022-05-22]
Pillow 9.1.1 官方中文文档编制 手册帮助 更新日志
Pillow 9.1.1 官方中文文档编制 手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Pillow 9.1.1。 Pillow 9.1.1 中文文档编[1048/2022-05-22]
Pillow 9.1.1 官方中文文档编制 手册帮助 全人工翻译
Pillow 9.1.1 官方中文文档编制 手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Pillow 9.1.1。 Pillow 9.1.1 中文文档[1001/2022-05-22]
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 更新日志
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 PyMuPDF 1.19.6。 PyMuPDF 1.19.6 中文[1619/2022-05-22]
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 全人工翻译
PyMuPDF 1.19.6 官方中文文档编制 手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 PyMuPDF 1.19.6。 PyMuPDF 1.19.6 中[1480/2022-05-22]

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

GMT+8, 2024-11-23 02:23 , Processed in 0.030197 second(s), 28 queries .

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

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

返回顶部