# Django 2.2.9.dev20191202104323 文档

# FAQ：概述

## 这个项目因何存在。

Django 从一个非常实际的需求成长而来：World Web 是一家新闻网站，负责在新闻截止期限内建立密集的 Web 应用程序。 在快节奏的新闻编辑室，World Online 往往需要几个小时内将一个复杂的 Web 应用程序从概念推向发布上线。

与此同时，World Online 的 Web开发者在 Web 开发的最佳实践方面一直是完美主义者。

在2003年秋季，世界在线开发者（Adrian Holovaty 和 Simon Willison）放弃 PHP 而开始使用 Python 开发网站。 当他们构建了密集的，强互动性的网站时（如 Lawrence.com），他们开始提取一个通用的 Web 开发框架，使他们可以更快地构建 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 库？

当 Django 最初设计时，Adrian 和 Simon 花了很多时间去研究各种各样已经存在的 Python Web 框架。

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

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

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

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

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

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

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

Django 不是一个 CMS 或任何意义上的“一站式解决方案”。它是一个 Web 框架；它是一个让你建立网站的编程工具。

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

当然，Django 的 admin site 很好用而且实现很便捷 -- 但 admin site 是 Django 框架的一个模块。 此外，尽管 Django 为构建 "CMS-y" 应用提供了特殊的便利，但并不意味着它不仅适合于构建 "非CMS-y"的应用 (不管那意味着什么)。

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

Django 文档可以在每个 Django 版本压缩包的 "docs" 目录中找到。这些文档采用 reST（reStructuredText）格式，每个文本文件都对应官方 Django 网站上的页面。

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

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

## 如何引用 Django？

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

例如，APA style，命令类似:

    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）