FAQ:概述

这个项目因何存在。

Django grew from a very practical need: World Online, a newspaper web operation, is responsible for building intensive web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated web application from concept to public launch.

At the same time, the World Online web developers have consistently been perfectionists when it comes to following best practices of web development.

In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) ditched PHP and began using Python to develop its websites. As they built intensive, richly interactive sites such as Lawrence.com, they began to extract a generic web development framework that let them build web applications more and more quickly. They tweaked this framework constantly, adding improvements over two years.

在 2005 年夏天,World Online 决定开源 Django。如果没有大量的开源项目 - “Apache”,“Python” 和 “PostgreSQL” 等等,Django 是不可能完成的 - 我们很高兴能够回馈一些东西给开源社区。

“Django”是什么意思,怎么发音?

Django 的名字来源于 Django Reinhardt,一个活跃在1930 年到 1950 年代初期的吉普赛吉他工作室,直到今天,他们依然被认为是史上最好的吉他手之一。

聆听他的音乐. 你会喜欢它的.

Django 发音为 JANG,使用 FANG 来押韵,字母 "D "是不发声的.

我们也记录了一段 发音的音频片段.

Django 稳定吗?

是的,它相当稳定。 Disqus, Instagram, Pinterest, 还有 Mozilla 等公司使用 Django 很多年了。使用 Django 搭建的网站能承受每秒 50000 次点击的流量峰值。

Django 可扩展吗?

是的,与程序调试时间相比,硬件很便宜,所以 Django 被设计的尽可能多的利用硬件的性能。

Django uses a "shared-nothing" architecture, which means you can add hardware at any level -- database servers, caching servers or web/application servers.

该框架将组件完全分离,如数据库层和应用程序层。它附带了一个简单但强大的 :doc:`缓存框架</topics/cache> `.

谁在这背后?

Django was originally developed at World Online, the web department of a newspaper in Lawrence, Kansas, USA. Django's now run by an international team of volunteers.

Django 是如何授权的?

Djaon 基于 the 3-clause BSD license 发布。这是一份开源协议,它允许你修改和再次分发 Django。

为什么 Django 包含 Python 的协议文件?

Django 包含源自 Python 的标准库。Python 是在开源许可协议下发布的。Django 包含了 一份 Python 协议 <LICENSE.python>,这是为了遵守 Python 的要求。

哪些站点使用 Django?

DjangoSites.org 的特色是提供一个不断增长的使用 Django 搭建的网站的列表。

Django 似乎是一个 MVC 框架,但是您将控制器称为“视图”,并视图称为“模板”。 为什么不使用标准命名?

当然,标准化的名称是有争议的。

在我们对 MVC 的解释中,“视图”描述了呈现给用户的数据。数据看起来怎么样并不重要,重要的是哪些数据被呈现。该视图描述了 您看到了哪些数据,而不是 您怎么看到数据。这是一个微妙的区别。

所以,在我们的例子里,一个"视图(view)"是 Python 中针对一个特定 URL 的回调函数,此回调函数描述了需要展示的数据。

此外,将内容和展示效果分开是很明智的,展示效果就是模板。在 Django 里面,一个视图(view)描述了哪些数据会被展示,但是一个视图通常代表了一个模板,这个模板描述了数据是如何被展示的。

那控制器(Controller)在什么位置?在 Django 中,控制器可能指的是框架本身,框架会根据 Django 的 URL 配置,将请求分发到适当的视图(view)。

如果你想要首字母缩写, 你可能会说 Django 是一个 "MTV " 框架--即 "模型(Model) "、 "模板(Template)" 和 "视图(View). 这种划分更有意义。

归根结底,还是要把事情做好。而且,不管事物怎么命名,Django 都能以一种最符合我们逻辑的方式来完成事情。

<Framework X>可以做到<feature Y>--为什么 Django 不能呢?

We're well aware that there are other awesome web frameworks out there, and we're not averse to borrowing ideas where appropriate. 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 库?

When Django was originally written, Adrian and Simon spent quite a bit of time exploring the various Python web frameworks available.

在我们看来,没有一个能完全达到所需的标准。

我们很挑剔。甚至你可以说我们是完美主义者。(有截止期限的)

随着时间的推移,我们偶然发现那些我们已经完成的开源库。很高兴看到其他人用类似的办法解决类似的问题,但是将外部代码整合已经太晚了:我们已经在几种生成环境中编写,测试并实现了我们的框架--而且我们自己的代码愉快的满足了我们的需求。

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

正如我们所说的:我们很挑剔

我们的设计理念请参照 设计哲学页面.

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

No, Django is not a CMS, or any sort of "turnkey product" in and of itself. It's a web framework; it's a programming tool that lets you build websites.

例如,将 Django 和 Drupal 进行比较毫无意义,因为 Django 是用来创建 Drupal 之类的框架。

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

我如何下载 Django 文档进行离线阅读?

The Django docs are available in the docs directory of each Django tarball release. These docs are in reST (reStructuredText) format, and each text file corresponds to a web page on the official Django site.

由于文档存储在 stored in revision control ,所以你可以像浏览代码变更一样浏览文档变更。

从技术上讲,Django 网站上的文档通常是由这些最新开发版本的 reST 文档生成,所以 Django 网站上提供的文档内容可能多于最新 Django 版本中的文档内容。

如何引用 Django?

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

例如,APA style,命令类似:

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

但是,唯一真正的指南就是您出版商将接受的内容,因此请获得这些指南的副本并尽可能填补空缺。

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

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

如果你需要一个网络地址的话,使 https://www.djangoproject.com/ 网址即可。

如果你需要一个名字,只需使用“django”,没有任何修饰符号

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