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。 Django是一个基于MVC构造的web应用框架。 但在Django中,控制器接受用户输入部分是由框架自行处理的;所以,Django更关注模型(Model)、模板(Template)、视图(Views),这就是所谓的MTV模式。
从上表可以看出,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模式程序员大都是在写控制层的程序。现在,这个工作交给了框架,仅需写很少的调用代码,可大大提高工作效率。 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,类似于内容管理系统。 工作机制 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 发行版
Django 未来计划开发版
扫一扫关注 德云社区 微信公众号 版权声明: 本文为独家原创稿件,版权归 德云社区,未经许可不得转载。 |