FAQ:概述

这个项目因何存在。

Django源于一个非常实际的需求:世界在线是一家负责在新闻截止日期前构建密集的网络应用程序的报纸运营商。在快节奏的新闻编辑室内,世界在线经常只有几个小时的时间来完成复杂的应用程序从概念到发布的过程。

与此同时,世界在线的网页开发者在遵循网页开发的最佳实践方面一直是完美主义者。

在2003年秋季,世界在线的开发者们(Adrian Holovaty和Simon Willison)放弃了PHP,并且开始使用Python开发他们的网站。随着他们创建了诸如Lawrence.com这样密集的、交互性丰富的站点,他们开始提取一个通用的web开发框架让他们构建网页程序越来越开快速。他们在过去的两年里不断的改进和调整这个框架。

在 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 使用“无共享”体系结构,这意味着您可以在任何级别添加硬件——数据库服务器,缓存服务器或 Web /应用程序服务器。

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

谁在这背后?

Django 最初是在美国堪萨斯州劳伦斯市一家报纸的网络部门 World Online 开发的。Django 现在由一个国际 `志愿者小组<https://www.djangoproject.com/foundation/teams/>`_ 运行。

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 不能呢?

我们清楚的知道,其他还有很棒的 web 框架,而且我们也不反对在适当的情况下借鉴想法。但是,Django 的开发恰恰是因为我们对现状的不满,所以请注意“因为<Framework X>所以”不会成为将特定功能加到 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,命令类似:

  1. 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)