“Django/docs/3.0.x/faq/general”的版本间差异
(autoload) |
小 (Page commit) |
||
第1行: | 第1行: | ||
+ | {{DISPLAYTITLE:常见问题:通用 — Django 文档}} | ||
<div id="faq-general" class="section"> | <div id="faq-general" class="section"> | ||
− | = | + | = 常见问题:一般 = |
<div id="why-does-this-project-exist" class="section"> | <div id="why-does-this-project-exist" class="section"> | ||
− | == | + | == 为什么会有这个项目? == |
− | Django | + | Django 源于一个非常实际的需求:World Online 是一家报纸 Web 运营商,负责在新闻截止日期前构建密集的 Web 应用程序。 在快节奏的新闻编辑室中,World Online 通常只有几个小时的时间来完成复杂的 Web 应用程序从概念到公开发布的过程。 |
− | + | 同时,World Online Web 开发人员在遵循 Web 开发的最佳实践方面一直是完美主义者。 | |
− | + | 2003 年秋季,World Online 开发人员(Adrian Holovaty 和 Simon Willison)放弃了 PHP,开始使用 Python 开发其网站。 随着他们构建密集的、交互性强的站点(例如 Lawrence.com),他们开始提取一个通用的 Web 开发框架,使他们能够越来越快地构建 Web 应用程序。 他们不断调整这个框架,在两年内增加了改进。 | |
− | + | 2005 年夏天,World Online 决定开源由此产生的软件 Django。 如果没有一整套开源项目,Django 就不可能实现——[https://httpd.apache.org/ Apache]、[https://www.python.org/ Python] 和 [https://www.postgresql.org/ PostgreSQL] 等等——我们很高兴能够回馈开源社区。 | |
第19行: | 第20行: | ||
<div id="what-does-django-mean-and-how-do-you-pronounce-it" class="section"> | <div id="what-does-django-mean-and-how-do-you-pronounce-it" class="section"> | ||
− | == | + | == “姜戈”是什么意思,你怎么发音? == |
− | Django | + | Django 以 [https://en.wikipedia.org/wiki/Django_Reinhardt Django Reinhardt 的名字命名,Django Reinhardt] 是 1930 年代至 1950 年代初的爵士乐吉他手。 直到今天,他仍被认为是有史以来最好的吉他手之一。 |
− | + | 听听他的音乐。 你会喜欢的。 | |
− | Django 发音为 '''JANG''' | + | Django 发音为 '''JANG'''-oh。 与 FANG-oh 押韵。 “D”是沉默的。 |
− | + | 我们还录制了 [https://www.red-bean.com/~adrian/django_pronunciation.mp3 发音的] 音频剪辑。 | |
第33行: | 第34行: | ||
<div id="is-django-stable" class="section"> | <div id="is-django-stable" class="section"> | ||
− | == Django | + | == Django 稳定吗? == |
− | + | 是的,它非常稳定。 Disqus、Instagram、Pinterest 和 Mozilla 等公司多年来一直在使用 Django。 建立在 Django 上的网站经受住了每秒超过 5 万次点击的流量高峰。 | |
第41行: | 第42行: | ||
<div id="does-django-scale" class="section"> | <div id="does-django-scale" class="section"> | ||
− | == Django | + | == Django 可以扩展吗? == |
− | + | 是的。 与开发时间相比,硬件便宜,因此 Django 旨在利用尽可能多的硬件。 | |
− | Django | + | Django 使用“无共享”架构,这意味着您可以在任何级别添加硬件——数据库服务器、缓存服务器或 Web/应用程序服务器。 |
− | + | 该框架清晰地分离了诸如数据库层和应用层之类的组件。 它附带了一个简单而强大的 [[../../topics/cache|缓存框架]] 。 | |
第53行: | 第54行: | ||
<div id="who-s-behind-this" class="section"> | <div id="who-s-behind-this" class="section"> | ||
− | == | + | == 这是谁的幕后推手? == |
− | Django | + | Django 最初是在美国堪萨斯州劳伦斯一家报纸的网络部门 World Online 开发的。 Django 现在由一个国际 [https://www.djangoproject.com/foundation/teams/ 志愿者团队] 运营。 |
第61行: | 第62行: | ||
<div id="how-is-django-licensed" class="section"> | <div id="how-is-django-licensed" class="section"> | ||
− | == Django | + | == Django 是如何获得许可的? == |
− | + | Django 分布在 [[#id1|:source:`3 条款 BSD 许可证 `]] . 这是一个开源许可证,授予修改和重新分发 Django 的广泛权限。 | |
第69行: | 第70行: | ||
<div id="why-does-django-include-python-s-license-file" class="section"> | <div id="why-does-django-include-python-s-license-file" class="section"> | ||
− | == 为什么 Django 包含 Python | + | == 为什么 Django 包含 Python 的许可文件? == |
− | Django | + | Django 包含来自 Python 标准库的代码。 Python 是在宽松的开源许可证下分发的。 [[#id3|:source:`Python 许可证的副本 `]] 包含在 Django 中以符合 Python 的条款。 |
第77行: | 第78行: | ||
<div id="which-sites-use-django" class="section"> | <div id="which-sites-use-django" class="section"> | ||
− | == | + | == 哪些网站使用 Django? == |
− | DjangoSites.org | + | [https://djangosites.org DjangoSites.org] 提供了一个不断增长的 Django 站点列表。 |
第86行: | 第87行: | ||
<span id="faq-mtv"></span> | <span id="faq-mtv"></span> | ||
− | == Django 似乎是一个 MVC | + | == Django 似乎是一个 MVC 框架,但您将控制器称为“视图”,将视图称为“模板”。 你怎么不使用标准名称? == |
− | + | 嗯,标准名称是有争议的。 | |
− | 在我们对 MVC | + | 在我们对 MVC 的解释中,“视图”描述了呈现给用户的数据。 不一定是''如何''数据''看起来'',而是''''数据的呈现方式。 该视图描述了''您看到的数据'',而不是''您看到的数据。''这是一个微妙的区别。 |
− | + | 因此,在我们的例子中,“视图”是特定 URL 的 Python 回调函数,因为该回调函数描述了呈现哪些数据。 | |
− | + | 此外,将内容与演示分开是明智的——这就是模板的用武之地。 在 Django 中,“视图”描述了呈现哪些数据,但视图通常委托给模板,该模板描述 ''如何'' 呈现数据。 | |
− | + | 那么,“控制器”适用于何处? 在 Django 的情况下,它可能是框架本身:根据 Django URL 配置将请求发送到适当视图的机制。 | |
− | + | 如果您渴望首字母缩略词,您可能会说 Django 是一个“MTV”框架——即“模型”、“模板”和“视图”。 这种崩溃更有意义。 | |
− | + | 当然,归根结底,这归结为完成工作。 而且,无论事物如何命名,Django 以对我们来说最合乎逻辑的方式完成工作。 | |
第106行: | 第107行: | ||
<div id="framework-x-does-feature-y-why-doesn-t-django" class="section"> | <div id="framework-x-does-feature-y-why-doesn-t-django" class="section"> | ||
− | == | + | == 做 – 为什么 Django 没有? == |
− | + | 我们很清楚还有其他很棒的 Web 框架,并且我们不反对在适当的地方借用想法。 然而,Django 的开发正是因为我们对现状不满,所以请注意“因为 do it”并不是将给定功能添加到 Django 的充分理由。 | |
第114行: | 第115行: | ||
<div id="why-did-you-write-all-of-django-from-scratch-instead-of-using-other-python-libraries" class="section"> | <div id="why-did-you-write-all-of-django-from-scratch-instead-of-using-other-python-libraries" class="section"> | ||
− | == | + | == 为什么你从头开始编写所有 Django,而不是使用其他 Python 库? == |
− | + | 最初编写 Django 时,Adrian 和 Simon 花了很多时间探索各种可用的 Python Web 框架。 | |
− | + | 在我们看来,他们中没有一个完全符合要求。 | |
− | + | 我们很挑剔。 你甚至可以称我们为完美主义者。 (有截止日期。) | |
− | + | 随着时间的推移,我们偶然发现了一些我们已经实现的开源库。 看到其他人以类似方式解决类似问题令人欣慰,但集成外部代码为时已晚:我们已经在多个生产环境中编写、测试和实现了我们自己的框架位 - 我们自己的代码愉快地满足了我们的需求. | |
− | + | 然而,在大多数情况下,我们发现现有的框架/工具不可避免地存在某种基本的、致命的缺陷,这让我们感到不安。 没有任何工具 100% 符合我们的理念。 | |
− | + | 就像我们说的:我们很挑剔。 | |
− | + | 我们已经在 [[../../misc/design-philosophies|设计理念页面]] 上记录了我们的理念。 | |
第134行: | 第135行: | ||
<div id="is-django-a-content-management-system-cms" class="section"> | <div id="is-django-a-content-management-system-cms" class="section"> | ||
− | == Django | + | == Django 是内容管理系统 (CMS) 吗? == |
− | + | 不,Django 本身不是 CMS,也不是任何类型的“交钥匙产品”。 它是一个 Web 框架; 它是一种编程工具,可让您构建网站。 | |
− | 例如,将 Django | + | 例如,将 Django 与 [https://drupal.org/ Drupal] 之类的东西进行比较没有多大意义,因为 Django 是您用来 ''create'' 之类 Drupal 的东西。 |
− | 当然,Django | + | 当然,Django 的自动管理站点非常棒且省时——但管理站点是 Django 框架的一个模块。 此外,尽管 Django 为构建“CMS-y”应用程序提供了特殊的便利,但这并不意味着它不仅适合构建“非 CMS-y”应用程序(不管这意味着什么!)。 |
第146行: | 第147行: | ||
<div id="how-can-i-download-the-django-documentation-to-read-it-offline" class="section"> | <div id="how-can-i-download-the-django-documentation-to-read-it-offline" class="section"> | ||
− | == | + | == 如何下载 Django 文档以离线阅读? == |
− | Django | + | Django 文档位于每个 Django tarball 版本的 <code>docs</code> 目录中。 这些文档是reST(reStructuredText)格式,每个文本文件对应一个Django官方站点上的一个网页。 |
− | + | 因为文档是 [[#id5|:source:`存储在版本控制中 `]] ,您可以像浏览代码更改一样浏览文档更改。 | |
− | 从技术上讲,Django | + | 从技术上讲,Django 站点上的文档是根据这些 reST 文档的最新开发版本生成的,因此 Django 站点上的文档可能提供比最新 Django 版本附带的文档更多的信息。 |
第158行: | 第159行: | ||
<div id="how-do-i-cite-django" class="section"> | <div id="how-do-i-cite-django" class="section"> | ||
− | == | + | == 我如何引用 Django? == |
− | + | 很难给出正式的引文格式,原因有二:不同出版物的引文格式差异很大,软件的引文标准仍然存在争议。 | |
− | 例如,[https://www.apastyle.org APA | + | 例如,[https://www.apastyle.org APA 样式] 会规定如下内容: |
<div class="highlight-default notranslate"> | <div class="highlight-default notranslate"> | ||
第168行: | 第169行: | ||
<div class="highlight"> | <div class="highlight"> | ||
− | < | + | <syntaxhighlight lang="python">Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.</syntaxhighlight> |
</div> | </div> | ||
</div> | </div> | ||
− | + | 但是,唯一真正的指南是您的出版商会接受的内容,因此请获取这些指南的副本并尽可能地填补空白。 | |
− | + | 如果您的引用样式指南需要发布者名称,请使用“Django Software Foundation”。 | |
− | + | 如果您需要发布地点,请使用“Lawrence, Kansas”。 | |
− | + | 如果您需要网址,请使用 https://djangoproject.com。 | |
− | + | 如果你需要一个名字,只需使用“Django”,没有任何标语。 | |
− | + | 如果您需要发布日期,请使用您所引用版本的发布年份(例如,v1.5 为 2013) | |
第189行: | 第190行: | ||
</div> | </div> | ||
+ | <div class="clearer"> | ||
− | [[Category:Django 3.0.x | + | |
+ | |||
+ | </div> | ||
+ | |||
+ | [[Category:Django 3.0.x 文档]] |
2021年10月31日 (日) 04:08的最新版本
常见问题:一般
为什么会有这个项目?
Django 源于一个非常实际的需求:World Online 是一家报纸 Web 运营商,负责在新闻截止日期前构建密集的 Web 应用程序。 在快节奏的新闻编辑室中,World Online 通常只有几个小时的时间来完成复杂的 Web 应用程序从概念到公开发布的过程。
同时,World Online Web 开发人员在遵循 Web 开发的最佳实践方面一直是完美主义者。
2003 年秋季,World Online 开发人员(Adrian Holovaty 和 Simon Willison)放弃了 PHP,开始使用 Python 开发其网站。 随着他们构建密集的、交互性强的站点(例如 Lawrence.com),他们开始提取一个通用的 Web 开发框架,使他们能够越来越快地构建 Web 应用程序。 他们不断调整这个框架,在两年内增加了改进。
2005 年夏天,World Online 决定开源由此产生的软件 Django。 如果没有一整套开源项目,Django 就不可能实现——Apache、Python 和 PostgreSQL 等等——我们很高兴能够回馈开源社区。
“姜戈”是什么意思,你怎么发音?
Django 以 Django Reinhardt 的名字命名,Django Reinhardt 是 1930 年代至 1950 年代初的爵士乐吉他手。 直到今天,他仍被认为是有史以来最好的吉他手之一。
听听他的音乐。 你会喜欢的。
Django 发音为 JANG-oh。 与 FANG-oh 押韵。 “D”是沉默的。
我们还录制了 发音的 音频剪辑。
Django 稳定吗?
是的,它非常稳定。 Disqus、Instagram、Pinterest 和 Mozilla 等公司多年来一直在使用 Django。 建立在 Django 上的网站经受住了每秒超过 5 万次点击的流量高峰。
Django 可以扩展吗?
是的。 与开发时间相比,硬件便宜,因此 Django 旨在利用尽可能多的硬件。
Django 使用“无共享”架构,这意味着您可以在任何级别添加硬件——数据库服务器、缓存服务器或 Web/应用程序服务器。
该框架清晰地分离了诸如数据库层和应用层之类的组件。 它附带了一个简单而强大的 缓存框架 。
为什么 Django 包含 Python 的许可文件?
Django 包含来自 Python 标准库的代码。 Python 是在宽松的开源许可证下分发的。 :source:`Python 许可证的副本 ` 包含在 Django 中以符合 Python 的条款。
Django 似乎是一个 MVC 框架,但您将控制器称为“视图”,将视图称为“模板”。 你怎么不使用标准名称?
嗯,标准名称是有争议的。
在我们对 MVC 的解释中,“视图”描述了呈现给用户的数据。 不一定是如何数据看起来,而是'数据的呈现方式。 该视图描述了您看到的数据,而不是您看到的数据。这是一个微妙的区别。
因此,在我们的例子中,“视图”是特定 URL 的 Python 回调函数,因为该回调函数描述了呈现哪些数据。
此外,将内容与演示分开是明智的——这就是模板的用武之地。 在 Django 中,“视图”描述了呈现哪些数据,但视图通常委托给模板,该模板描述 如何 呈现数据。
那么,“控制器”适用于何处? 在 Django 的情况下,它可能是框架本身:根据 Django URL 配置将请求发送到适当视图的机制。
如果您渴望首字母缩略词,您可能会说 Django 是一个“MTV”框架——即“模型”、“模板”和“视图”。 这种崩溃更有意义。
当然,归根结底,这归结为完成工作。 而且,无论事物如何命名,Django 以对我们来说最合乎逻辑的方式完成工作。
做 – 为什么 Django 没有?
我们很清楚还有其他很棒的 Web 框架,并且我们不反对在适当的地方借用想法。 然而,Django 的开发正是因为我们对现状不满,所以请注意“因为 do it”并不是将给定功能添加到 Django 的充分理由。
为什么你从头开始编写所有 Django,而不是使用其他 Python 库?
最初编写 Django 时,Adrian 和 Simon 花了很多时间探索各种可用的 Python Web 框架。
在我们看来,他们中没有一个完全符合要求。
我们很挑剔。 你甚至可以称我们为完美主义者。 (有截止日期。)
随着时间的推移,我们偶然发现了一些我们已经实现的开源库。 看到其他人以类似方式解决类似问题令人欣慰,但集成外部代码为时已晚:我们已经在多个生产环境中编写、测试和实现了我们自己的框架位 - 我们自己的代码愉快地满足了我们的需求.
然而,在大多数情况下,我们发现现有的框架/工具不可避免地存在某种基本的、致命的缺陷,这让我们感到不安。 没有任何工具 100% 符合我们的理念。
就像我们说的:我们很挑剔。
我们已经在 设计理念页面 上记录了我们的理念。
Django 是内容管理系统 (CMS) 吗?
不,Django 本身不是 CMS,也不是任何类型的“交钥匙产品”。 它是一个 Web 框架; 它是一种编程工具,可让您构建网站。
例如,将 Django 与 Drupal 之类的东西进行比较没有多大意义,因为 Django 是您用来 create 之类 Drupal 的东西。
当然,Django 的自动管理站点非常棒且省时——但管理站点是 Django 框架的一个模块。 此外,尽管 Django 为构建“CMS-y”应用程序提供了特殊的便利,但这并不意味着它不仅适合构建“非 CMS-y”应用程序(不管这意味着什么!)。
如何下载 Django 文档以离线阅读?
Django 文档位于每个 Django tarball 版本的 docs
目录中。 这些文档是reST(reStructuredText)格式,每个文本文件对应一个Django官方站点上的一个网页。
因为文档是 :source:`存储在版本控制中 ` ,您可以像浏览代码更改一样浏览文档更改。
从技术上讲,Django 站点上的文档是根据这些 reST 文档的最新开发版本生成的,因此 Django 站点上的文档可能提供比最新 Django 版本附带的文档更多的信息。
我如何引用 Django?
很难给出正式的引文格式,原因有二:不同出版物的引文格式差异很大,软件的引文标准仍然存在争议。
例如,APA 样式 会规定如下内容:
但是,唯一真正的指南是您的出版商会接受的内容,因此请获取这些指南的副本并尽可能地填补空白。
如果您的引用样式指南需要发布者名称,请使用“Django Software Foundation”。
如果您需要发布地点,请使用“Lawrence, Kansas”。
如果您需要网址,请使用 https://djangoproject.com。
如果你需要一个名字,只需使用“Django”,没有任何标语。
如果您需要发布日期,请使用您所引用版本的发布年份(例如,v1.5 为 2013)