FAQ:常见的

为什么这个项目存在?

Django从一个非常实际的需求成长:World Online是一个报纸Web操作,负责在新闻期限上构建密集的Web应用程序。 在快节奏的新闻编辑室中,World Online通常只需要几个小时的时间将复杂的Web应用程序从概念到公开发布。

与此同时,世界在线Web开发人员一直是完美主义者,当谈到Web开发的最佳实践。

在2003年秋季,世界在线开发人员(Adrian Holovaty和Simon Willison)沉迷于PHP,并开始使用Python开发其网站。 当他们建立密集,丰富的互动网站,如Lawrence.com,他们开始提取一个通用的Web开发框架,让他们越来越快地构建Web应用程序。 他们不断地调整这个框架,在两年内增加了改进。

2005年夏天,World Online决定开源软件Django。 如果没有一整套开源项目 - ApachePythonPostgreSQL,Django就不可能列出几个 - 非常高兴能够回馈开源社区。

“Django”是什么意思,以及如何发音?

Django以20世纪30年代至20世纪50年代初期的爵士乐手吉他手Django Reinhardt命名。 直到今天,他被认为是有史以来最好的吉他手之一。

听他的音乐。 你会喜欢的。

Django的发音是JANG -oh。 Rhymes与FANG-oh。 “D”是沉默的。

我们还录制了音频剪辑

Django是否稳定?

是的,它相当稳定。 Disqus,Instagram,Pinterest和Mozilla等公司已经使用Django多年了。 基于Django构建的网站已经风化了每秒超过5万次点击的流量峰值。

Django是否缩放?

是。 与开发时间相比,硬件便宜,因此Django的设计可以充分利用尽可能多的硬件。

Django使用“无共享”架构,这意味着您可以在任何级别添加硬件 - 数据库服务器,缓存服务器或Web /应用程序服务器。

该框架清楚地分离了组件,如其数据库层和应用程序层。 它附带了一个简单但功能强大的缓存框架

谁在这背后呢?

Django最初是在World Online,在美国堪萨斯州劳伦斯的一家报纸的网络部门开发的。 Django现在由一个国际性的志愿者小组运作。

哪些网站使用Django?

DjangoSites.org具有不断增长的Django供应网站列表。

Django似乎是一个MVC框架,但您将Controller 称为“视图”,将View称为“模板”。 你怎么不使用标准名称?

好吧,标准名称是有争议的。

在我们对MVC的解释中,“视图”描述了呈现给用户的数据。 它不一定是数据看起来如何,而是提供哪些数据。 视图描述您看到的数据,而不是 你怎么看到的, 这是一个微妙的区别。

所以,在我们的例子中,“视图”是特定URL的Python回调函数,因为回调函数描述了呈现哪些数据。

此外,将内容与表示(其中是模板)相分离是明智的。 在Django中,“视图”描述呈现哪些数据,但是视图通常委托给模板,该模板描述如何呈现数据。

那么“控制器”适合在哪里呢? 在Django中,它可能是框架本身:根据Django URL配置,将请求发送到适当视图的机制。

如果你渴望得到首字母缩写词,你可能会说Django是一个“MTV”框架 - 也就是“模型”,“模板”和“视图”。这种分解更有意义。

当然,在一天结束时,这归结于完成任务。 而且,无论如何命名,Django都会以对我们最合乎逻辑的方式完成任务。

<Framework X> does <feature Y> – why doesn’t Django?

我们清楚地知道,还有其他很棒的Web框架,我们并不反对在适当的情况下借用想法。 However, Django was developed precisely because we were unhappy with the status quo, so please be aware that “because <Framework X> does it” is not going to be sufficient reason to add a given feature to Django.

为什么从头开始编写所有的Django,而不是使用其他Python库?

当Django最初写入时,Adrian和Simon花了很多时间探索各种可用的Python Web框架。

在我们看来,他们没有一个完全达到鼻烟。

我们很挑剔。 你甚至可以叫我们完美主义者。 (有截止日期。)

随着时间的推移,我们偶然发现了那些我们已经实现的开源库。 令人放心的是看到其他人以类似的方式解决类似的问题,但是集成外部代码太晚了:我们已经在几个生产环境中编写,测试和实现了自己的框架位 - 我们自己的代码满足了我们的需求。

然而,在大多数情况下,我们发现现有的框架/工具不可避免地存在某种致使我们娇气的基本致命缺陷。 没有工具可以100%符合我们的哲学。

就像我们说的:我们挑剔。

我们在设计哲学页面上记录了我们的哲学。

Django是内容管理系统(CMS)吗?

不,Django不是CMS,或任何种类的“交钥匙产品”本身。 这是一个Web框架;它是一个编程工具,可以让您构建网站。

例如,将Django与Drupal比较没有什么意义,因为Django是您用来创建类似Drupal的东西。

当然,Django的自动管理站点非常棒,节省时间 - 但管理站点是Django框架的一个模块。 此外,尽管Django为构建“CMS-y”应用程序提供了特殊的便利,但这并不意味着它不适合构建“非CMS-y”应用程序(无论这意味着什么!)。

我怎样才能下载Django文档来离线阅读?

Django文档可在每个Django tarball发行版的docs目录中找到。 这些文档采用reST(reStructuredText)格式,每个文本文件对应于官方Django站点上的网页。

由于文档存储在版本控制中,因此您可以浏览文档更改,就像浏览代码更改一样。

从技术上讲,Django网站上的文档是从这些reST文档的最新开发版本生成的,因此Django网站上的文档可能会提供比最新的Django版本中的文档更多的信息。

我如何引用Django?

很难给出正式的引文格式,原因有两个:引文格式在出版物之间可能有很大差异,软件引用标准仍然是一些争论的问题。

例如,APA样式,将指定类似:

Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.

但是,唯一真正的指南是您的发布商会接受的,所以获得这些指南的副本,并尽可能填补空白。

如果引用样式指南需要发布者名称,请使用“Django Software Foundation”。

如果您需要发布位置,请使用“Lawrence,Kansas”。

如果您需要网址,请使用https://djangoproject.com

如果你需要一个名字,只要使用“Django”,没有任何标语。

如果您需要发布日期,请使用您引用的版本的发布年份(例如,2013 for v1.5)