{"title":"FAQ：概述","version":"2.2","locale":"zh-hans","docname":"faq/general","url":"/zh-hans/2.2/faq/general/","canonical":"https://djangodocs.dev/zh-hans/2.2/faq/general/","summary":"这个项目因何存在。 Link to this heading # Django 从一个非常实际的需求成长而来：World Web 是一家新闻网站，负责在新闻截止期限内建立密集的 Web 应用程序。 在快节奏的新闻编辑室，World Online 往往需要几个小时内将一个复杂的 Web 应用程序从概念推向发布上线。…","html":"<h1>FAQ：概述<a class=\"heading-anchor\" href=\"#faq-general\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"why-does-this-project-exist\">\n<h2>这个项目因何存在。<a class=\"heading-anchor\" href=\"#why-does-this-project-exist\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 从一个非常实际的需求成长而来：World Web 是一家新闻网站，负责在新闻截止期限内建立密集的 Web 应用程序。 在快节奏的新闻编辑室，World Online 往往需要几个小时内将一个复杂的 Web 应用程序从概念推向发布上线。</p>\n<p>与此同时，World Online 的 Web开发者在 Web 开发的最佳实践方面一直是完美主义者。</p>\n<p>在2003年秋季，世界在线开发者（Adrian Holovaty 和 Simon Willison）放弃 PHP 而开始使用 Python 开发网站。 当他们构建了密集的，强互动性的网站时（如 Lawrence.com），他们开始提取一个通用的 Web 开发框架，使他们可以更快地构建 Web 应用程序。 两年内他们经常调整和改进这个框架。</p>\n<p>在 2005 年夏天，World Online 决定开源 Django。如果没有大量的开源项目  - “Apache”，“Python” 和 “PostgreSQL” 等等，Django 是不可能完成的 - 我们很高兴能够回馈一些东西给开源社区。</p>\n</section>\n<section id=\"what-does-django-mean-and-how-do-you-pronounce-it\">\n<h2>“Django”是什么意思，怎么发音？<a class=\"heading-anchor\" href=\"#what-does-django-mean-and-how-do-you-pronounce-it\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 的名字来源于 Django Reinhardt，一个活跃在1930 年到 1950 年代初期的吉普赛吉他工作室，直到今天，他们依然被认为是史上最好的吉他手之一。</p>\n<p>聆听他的音乐. 你会喜欢它的.</p>\n<p>Django 发音为 <strong>JANG</strong>，使用 FANG 来押韵，字母 &quot;D &quot;是不发声的.</p>\n<p>我们也记录了一段 <a class=\"reference external\" href=\"https://www.red-bean.com/~adrian/django_pronunciation.mp3\">发音的音频片段</a>.</p>\n</section>\n<section id=\"is-django-stable\">\n<h2>Django 稳定吗?<a class=\"heading-anchor\" href=\"#is-django-stable\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>是的，它相当稳定。 Disqus, Instagram, Pinterest, 还有 Mozilla 等公司使用 Django 很多年了。使用 Django 搭建的网站能承受每秒 50000 次点击的流量峰值。</p>\n</section>\n<section id=\"does-django-scale\">\n<h2>Django 可扩展吗?<a class=\"heading-anchor\" href=\"#does-django-scale\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>是的，与程序调试时间相比，硬件很便宜，所以 Django 被设计的尽可能多的利用硬件的性能。</p>\n<p>Django 使用“无共享”体系结构，这意味着您可以在任何级别添加硬件——数据库服务器，缓存服务器或 Web /应用程序服务器。</p>\n<p>该框架将组件完全分离，如数据库层和应用程序层。它附带了一个简单但强大的 :doc:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>缓存框架&lt;/topics/cache&gt; <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</section>\n<section id=\"who-s-behind-this\">\n<h2>谁在这背后？<a class=\"heading-anchor\" href=\"#who-s-behind-this\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 最初是在美国堪萨斯州劳伦斯市一家报纸的网络部门 World Online 开发的。Django 现在由一个国际 <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`志愿者小组&lt;https://www.djangoproject.com/foundation/teams/&gt;`_</span></a> 运行。</p>\n</section>\n<section id=\"how-is-django-licensed\">\n<h2>Django 是如何授权的？<a class=\"heading-anchor\" href=\"#how-is-django-licensed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Djaon 基于 <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/2.2.x/LICENSE\">the 3-clause BSD license</a> 发布。这是一份开源协议，它允许你修改和再次分发 Django。</p>\n</section>\n<section id=\"why-does-django-include-python-s-license-file\">\n<h2>为什么 Django 包含 Python 的协议文件？<a class=\"heading-anchor\" href=\"#why-does-django-include-python-s-license-file\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 包含源自 Python 的标准库。Python 是在开源许可协议下发布的。Django 包含了 一份 Python 协议 &lt;LICENSE.python&gt;，这是为了遵守 Python 的要求。</p>\n</section>\n<section id=\"which-sites-use-django\">\n<h2>哪些站点使用 Django?<a class=\"heading-anchor\" href=\"#which-sites-use-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>DjangoSites.org 的特色是提供一个不断增长的使用 Django 搭建的网站的列表。</p>\n</section>\n<section id=\"django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names\">\n<span id=\"faq-mtv\"></span><h2>Django 似乎是一个 MVC 框架，但是您将控制器称为“视图”，并视图称为“模板”。 为什么不使用标准命名？<a class=\"heading-anchor\" href=\"#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>当然，标准化的名称是有争议的。</p>\n<p>在我们对 MVC 的解释中，“视图”描述了呈现给用户的数据。数据看起来怎么样并不重要，重要的是哪些数据被呈现。该视图描述了 <em>您看到了哪些数据</em>，而不是 <em>您怎么看到数据</em>。这是一个微妙的区别。</p>\n<p>所以，在我们的例子里，一个&quot;视图(view)&quot;是 Python 中针对一个特定 URL 的回调函数，此回调函数描述了需要展示的数据。</p>\n<p>此外，将内容和展示效果分开是很明智的，展示效果就是模板。在 Django 里面，一个视图（view）描述了哪些数据会被展示，但是一个视图通常代表了一个模板，这个模板描述了数据是如何被展示的。</p>\n<p>那控制器（Controller）在什么位置？在 Django 中，控制器可能指的是框架本身，框架会根据 Django 的 URL 配置，将请求分发到适当的视图（view）。</p>\n<p>如果你想要首字母缩写, 你可能会说 Django 是一个 &quot;MTV &quot; 框架--即 &quot;模型(Model) &quot;、 &quot;模板(Template)&quot; 和 &quot;视图(View). 这种划分更有意义。</p>\n<p>当然, 在一天结束的时候, 它完成了工作。而且, 不管工作是怎样的, Django 以一种对我们来说最合乎逻辑的方式完成了。</p>\n</section>\n<section id=\"framework-x-does-feature-y-why-doesn-t-django\">\n<h2>&lt;Framework X&gt;可以做到&lt;feature Y&gt;--为什么 Django 不能呢？<a class=\"heading-anchor\" href=\"#framework-x-does-feature-y-why-doesn-t-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>我们清楚的知道，其他还有很棒的 web 框架，而且我们也不反对在适当的情况下借鉴想法。但是，Django 的开发恰恰是因为我们对现状的不满，所以请注意“因为&lt;Framework X&gt;所以”不会成为将特定功能加到 Django 的充分理由。</p>\n</section>\n<section id=\"why-did-you-write-all-of-django-from-scratch-instead-of-using-other-python-libraries\">\n<h2>为什么你要从头开始写所有的 Django 项目，而不是使用其他 Python 库？<a class=\"heading-anchor\" href=\"#why-did-you-write-all-of-django-from-scratch-instead-of-using-other-python-libraries\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>当 Django 最初设计时，Adrian 和 Simon 花了很多时间去研究各种各样已经存在的 Python Web 框架。</p>\n<p>在我们看来，没有一个能完全达到所需的标准。</p>\n<p>我们很挑剔。甚至你可以说我们是完美主义者。（有截止期限的）</p>\n<p>随着时间的推移，我们偶然发现那些我们已经完成的开源库。很高兴看到其他人用类似的办法解决类似的问题，但是将外部代码整合已经太晚了：我们已经在几种生成环境中编写，测试并实现了我们的框架--而且我们自己的代码愉快的满足了我们的需求。</p>\n<p>然而，在大多数情况下，我们发现有的框架／工具不可避免地存在某种致使我们过于拘谨的基本致命缺陷。没有工具可以100%符合我们的原理。</p>\n<p>正如我们所说的：我们很挑剔</p>\n<p>我们的设计理念请参照 <a class=\"reference internal\" href=\"/zh-hans/2.2/misc/design-philosophies/\"><span class=\"doc\">设计哲学页面</span></a>.</p>\n</section>\n<section id=\"is-django-a-content-management-system-cms\">\n<h2>Django 是个内容管理系统(CMS)吗?<a class=\"heading-anchor\" href=\"#is-django-a-content-management-system-cms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 不是一个 CMS 或任何意义上的“一站式解决方案”。它是一个 Web 框架；它是一个让你建立网站的编程工具。</p>\n<p>例如，将 Django 和 <a class=\"reference external\" href=\"https://drupal.org/\">Drupal</a> 进行比较毫无意义，因为 Django 是用来创建 Drupal 之类的框架。</p>\n<p>当然，Django 的 admin site 很好用而且实现很便捷  -- 但 admin site 是 Django 框架的一个模块。 此外，尽管 Django 为构建 &quot;CMS-y&quot; 应用提供了特殊的便利，但并不意味着它不仅适合于构建 &quot;非CMS-y&quot;的应用 (不管那意味着什么)。</p>\n</section>\n<section id=\"how-can-i-download-the-django-documentation-to-read-it-offline\">\n<h2>我如何下载 Django 文档进行离线阅读？<a class=\"heading-anchor\" href=\"#how-can-i-download-the-django-documentation-to-read-it-offline\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 文档可以在每个 Django 版本压缩包的 &quot;docs&quot; 目录中找到。这些文档采用 reST（reStructuredText）格式，每个文本文件都对应官方 Django 网站上的页面。</p>\n<p>由于文档存储在 <a class=\"reference external\" href=\"docs\">stored in revision control</a> ，所以您可以像浏览代码变更一样浏览文档变更。</p>\n<p>从技术上讲，Django 网站上的文档通常是由这些最新开发版本的 reST 文档生成，所以 Django 网站上提供的文档内容可能多于最新 Django 版本中的文档内容。</p>\n</section>\n<section id=\"how-do-i-cite-django\">\n<h2>如何引用 Django？<a class=\"heading-anchor\" href=\"#how-do-i-cite-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>出于两个原因，很难提供正式的引文格式：出版物之间的引文格式可能会有很大差异，软件的引用标准仍然是一些争议的问题。</p>\n<p>例如，<a class=\"reference external\" href=\"https://www.apastyle.org\">APA style</a>，命令类似:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">Django</span> <span class=\"p\">(</span><span class=\"n\">Version</span> <span class=\"mf\">1.5</span><span class=\"p\">)</span> <span class=\"p\">[</span><span class=\"n\">Computer</span> <span class=\"n\">Software</span><span class=\"p\">]</span><span class=\"o\">.</span> <span class=\"p\">(</span><span class=\"mi\">2013</span><span class=\"p\">)</span><span class=\"o\">.</span> <span class=\"n\">Retrieved</span> <span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">https</span><span class=\"p\">:</span><span class=\"o\">//</span><span class=\"n\">djangoproject</span><span class=\"o\">.</span><span class=\"n\">com</span><span class=\"o\">.</span>\n</code></pre></div>\n<p>但是，唯一真正的指南就是您出版商将接受的内容，因此请获得这些指南的副本并尽可能填补空缺。</p>\n<p>如果您的引用样式指南需要发布者名称，请使用&quot;Django Software Foundation&quot;。</p>\n<p>如果您需要发布位置，请使用&quot;Lawrence, Kansas&quot;。</p>\n<p>如果你需要一个网址，使用 <a class=\"reference external\" href=\"https://djangoproject.com\">https://djangoproject.com</a>。</p>\n<p>如果你需要一个名字，只需使用“django”，没有任何修饰符号</p>\n<p>如果您需要发布日期，请使用您所引用版本的发布年份（例如，2013 for v1.5）</p>\n</section>","rootId":"faq-general","toc":[{"title":"这个项目因何存在。","anchor":"why-does-this-project-exist","children":[]},{"title":"“Django”是什么意思，怎么发音？","anchor":"what-does-django-mean-and-how-do-you-pronounce-it","children":[]},{"title":"Django 稳定吗?","anchor":"is-django-stable","children":[]},{"title":"Django 可扩展吗?","anchor":"does-django-scale","children":[]},{"title":"谁在这背后？","anchor":"who-s-behind-this","children":[]},{"title":"Django 是如何授权的？","anchor":"how-is-django-licensed","children":[]},{"title":"为什么 Django 包含 Python 的协议文件？","anchor":"why-does-django-include-python-s-license-file","children":[]},{"title":"哪些站点使用 Django?","anchor":"which-sites-use-django","children":[]},{"title":"Django 似乎是一个 MVC 框架，但是您将控制器称为“视图”，并视图称为“模板”。 为什么不使用标准命名？","anchor":"django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names","children":[]},{"title":"<Framework X>可以做到<feature Y>--为什么 Django 不能呢？","anchor":"framework-x-does-feature-y-why-doesn-t-django","children":[]},{"title":"为什么你要从头开始写所有的 Django 项目，而不是使用其他 Python 库？","anchor":"why-did-you-write-all-of-django-from-scratch-instead-of-using-other-python-libraries","children":[]},{"title":"Django 是个内容管理系统(CMS)吗?","anchor":"is-django-a-content-management-system-cms","children":[]},{"title":"我如何下载 Django 文档进行离线阅读？","anchor":"how-can-i-download-the-django-documentation-to-read-it-offline","children":[]},{"title":"如何引用 Django？","anchor":"how-do-i-cite-django","children":[]}],"breadcrumbs":[{"docname":"faq/index","title":"Django FAQ","url":"/zh-hans/2.2/faq/"}],"prev":{"docname":"faq/index","title":"Django FAQ","url":"/zh-hans/2.2/faq/"},"next":{"docname":"faq/install","title":"FAQ：安装","url":"/zh-hans/2.2/faq/install/"},"formats":{"html":"/zh-hans/2.2/faq/general/","markdown":"/zh-hans/2.2/faq/general.md","json":"/zh-hans/2.2/faq/general.json"},"source":"https://github.com/django/django/blob/stable/2.2.x/docs/faq/general.txt","official":"https://docs.djangoproject.com/zh-hans/2.2/faq/general/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}