django

django

目录导航

简介

djangodjango(4)Django项目是一个python定制框架,它源自一个在线新闻Web站点,于2005年以开源的形式被释放出来。Django框架的核心组件有:

Django(发音:[`dʒæŋɡəʊ])是用python语言写的开源web开发框架(opensourcewebframework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0。

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

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

架构设计

Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。它们各自的职责如下:

层次 职责
模型(Model),即数据存取层 处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
视图(View),即表现层 处理与表现相关的决定:如何在页面或其他类型文档中进行显示
模板(Template),即业务逻辑层 存取模型及调取恰当模板的相关逻辑,模型与模板之间的桥梁

从以上表述可以看出Django视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django模板仅仅决定如何展现Django视图指定的数据。或者说,Django将MVC中的视图进一步分解为Django视图和Django模板两个部分,分别决定“展现哪些数据”和“如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。

至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作.在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。只需要编写非常少的代码完成很多的事情.所以。它比MVC框架考虑的问题要深一步.因为我们程序员大都写程序在控制层。现在这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。

设计哲学

层次 职责
模型(Model),即数据存取层 处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
视图(View),即表现层 处理与表现相关的决定:如何在页面或其他类型文档中进行显示
模板(Template),即业务逻辑层 存取模型及调取恰当模板的相关逻辑,模型与模板之间的桥梁

工作机制

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。

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

部署

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

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

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

4.最后该view函数负责返回一个HttpResponse对象。

文档

Django可以运行在Apache上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,已经支持Postgresql,MySql,Sqlite3,Oracle。GoogleAppEngine也支持Django的某些部分,国内支持的平台有(SAE)SinaAppEngine,(BAE)百度应用引擎。

学习网站

Django1.0建立了强大完整的文档体系,,涵盖了Django的方方面面,并且适合各种水平的读者和开发者.其中还包含若干个简单的示例,你可以跟随他们一步步体验Django的优美。

词条图册

Django+Python终极学习站点(一人一Python)

django官方网站

Djangodocumentation

TheDjangoBook

相关百科
返回顶部
产品求购 求购