Django(/ˈdʒæŋɡoʊ/)是一个开放源代码的Web应用框架,由Python写成。采用了MTV(model–template–views)的软件设计模式,即模型(Model),视图(View)和模板(Template)。它在开发初期用于管理劳伦斯出版集团(英语:Lawrence Journal-World)旗下的一些以新闻为主的网站。Django于2005年7月在BSD许可证下发布,它的名字来源于比利时的吉普赛爵士吉他手金格·萊恩哈特。
Django的主要目标是简化数据库驱动的网站的开发。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。在Django中普遍使用的语言是Python,甚至包括配置文件和数据模型。
Django于2008年6月17日正式成立基金会。
组件
Django框架的核心包括:一个对象关系映射器,用作数据模型(以Python类的形式定义)和關聯型数据库间的媒介;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;以及一个模板系统。
核心框架中还包括:
- 一个轻量级的、独立的Web服务器,用于开发和测试。
- 一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。
- 一个缓存框架,并有几种缓存方式可供选择。
- 中间件支持,允许对请求处理的各个阶段进行干涉。
- 内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。
- 一个序列化系统,能够生成或读取采用XML或JSON表示的Django模型实例。
- 一个用于扩展模板引擎的能力的系统。
内置应用
Django 包含了很多应用在它的contrib
包中,这些包括:
- 一个可扩展的认证系统
- 动态站点管理页面
- 一组产生RSS和Atom的工具
- 一个灵活的评论系统
- 产生Google站点地图(Google Sitemaps)的工具
- 防止跨站请求伪造(cross-site request forgery)的工具
- 一套支持轻量级标记语言(Textile和Markdown)的模板库
- 一套协助创建地理信息系统(GIS)的基础框架
服务的部署
Django可以运行在启用了mod_python
的Apache 2上,或是任何WSGI兼容的Web服务器。Django也有启动FastCGI服务的能力,因此能够应用于任何支持FastCGI的机器上。
下列数据库引擎被Django官方支持[2]:
Microsoft SQL Server的适配器正在开发中,处于试验阶段。(注:SQL Server的支持在1.0版本中已经被完全去除)
自Django 1.0起,已经可以利用Jython运行在任何J2EE服务器。除CPython外,Django目前官方支援使用Jython 2.7b2運行,但不保證與CPython上的行為完全相容,並應預期一些功能(如使用Pillow的部分)無法使用。[3]
參考資料
- ^ Release 5.0.4. 2024年4月3日 [2024年4月22日].
- ^ 数据库 | Django 文档 | Django. [2021-05-30]. (原始内容存档于2021-05-30) (中文(简体)).
- ^ Running Django on Jython. [2016-08-07]. (原始内容存档于2016-08-11).
外部链接
- 官方网站
- Django的模块列表(页面存档备份,存于互联网档案馆)(英文)
- 使用Django构建的网站列表(页面存档备份,存于互联网档案馆)(英文)
|
---|
| | | C++ | - CppCMS(英语:CppCMS)
- Wt(英语:Wt (web toolkit))
|
---|
| CLI | - ASP.NET
- DNN(英语:DotNetNuke)
- BFC(英语:Base One Foundation Component Library)
- MonoRail(英语:MonoRail (software))
- OpenRasta(英语:OpenRasta)
- Umbraco
|
---|
| ColdFusion | - CFWheels
- ColdBox Platform(英语:ColdBox Platform)
- ColdSpring(英语:ColdSpring Framework)
- Fusebox(英语:Fusebox (programming))
- Mach-II(英语:Mach-II)
- Model-Glue(英语:Model-Glue)
|
---|
| Common Lisp | - Caveman2(英语:Caveman2)
- CL-HTTP(英语:CL-HTTP)
- UnCommon Web(英语:UnCommon Web)
- Weblocks
|
---|
| D | |
---|
| Haskell | - Happstack(英语:Happstack)
- Yesod(英语:Yesod (web framework))
- Snap(英语:Snap (web framework))
|
---|
| Java | - AppFuse(英语:AppFuse)
- Flexive(英语:Flexive)
- Grails(英语:Grails (framework))
- GWT
- ICEfaces(英语:ICEfaces)
- ItsNat(英语:ItsNat)
- JavaServer Faces
- JHipster(英语:JHipster)
- Jspx(英语:Jspx-bay)
- JWt(英语:JWt (Java web toolkit))
- OpenXava(英语:OpenXava)
- Play
- Reasonable Server Faces(英语:Reasonable Server Faces)
- Remote Application Platform(英语:Remote Application Platform)
- RIFE(英语:RIFE)
- Seam(英语:JBoss Seam)
- Spring
- Stripes(英语:Stripes (framework))
- Struts
- Tapestry
- Vaadin(英语:Vaadin)
- Vert.x
- WebWork(英语:WebWork)
- Wicket
- WaveMaker(英语:WaveMaker)
- ZK
|
---|
| JavaScript | - Ample SDK(英语:Ample SDK)
- Angular(英语:Angular (application platform))/AngularJS
- Backbone.js
- Chaplin.js(英语:Chaplin.js)
- Closure(英语:Google Closure Tools)
- Dojo Toolkit
- Ember.js
- Extjs
- JQuery
- Meteor(英语:Meteor (web framework))
- MooTools(英语:MooTools)
- Node.js
- Prototype
- React
- Rico
- script.aculo.us(英语:script.aculo.us)
- Sencha Touch(英语:Sencha Touch)
- SproutCore(英语:SproutCore)
- Vue.js
- Wakanda(英语:Wakanda (software))
|
---|
| Perl | |
---|
| PHP | |
---|
| Python | |
---|
| Ruby | - Camping(英语:Camping (microframework))
- Merb(英语:Merb)
- Padrino(英语:Padrino (web framework))
- Ruby on Rails
- Sinatra(英语:Sinatra (software))
|
---|
| Rust | |
---|
| Scala | - Lift
- Play
- Scalatra(英语:Scalatra)
|
---|
| Smalltalk | - AIDA/Web(英语:AIDA/Web)
- Seaside(英语:Seaside (software))
|
---|
| 其他语言 | - Application Express(英语:Oracle Application Express)(PL-SQL)
- Grails(英语:Grails (framework))(Groovy)
- Kepler(英语:Kepler (software))(Lua)
- OpenACS(英语:OpenACS)(Tcl)
- Phoenix(英语:Phoenix (web framework))(Elixir)
- SproutCore(英语:SproutCore)(JavaScript-Ruby)
- Yaws(Erlang)
|
---|
|