常见问题解答:常规

为什么会有这个项目?

Django 源于一个非常实际的需求:World Online,一家报纸的网络运营部门,负责在新闻截止日期前构建密集型 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。如果没有大量的开源项目——ApachePythonPostgreSQL(仅举几例)——Django 将不可能存在,我们很高兴能够回馈开源社区。

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

Django 的名字来源于 Django Reinhardt,一位 20 世纪 30 年代至 50 年代初的吉普赛爵士吉他手。直到今天,他仍被认为是有史以来最伟大的吉他手之一。

听听他的音乐。你会喜欢的。

Django 的发音是 **JANG**-oh。与 FANG-oh 音同。 “D”不发音。

我们还录制了一个 发音音频片段

Django 稳定吗?

是的,它非常稳定。Disqus、Instagram、Pinterest 和 Mozilla 等公司多年来一直在使用 Django。基于 Django 构建的网站已经经受住了每秒超过 5 万次点击的流量峰值。

Django 可扩展吗?

是的。与开发时间相比,硬件很便宜,因此 Django 旨在充分利用您可以使用的所有硬件。

Django 使用“无共享”架构,这意味着您可以在任何级别添加硬件——数据库服务器、缓存服务器或 Web/应用程序服务器。

该框架清晰地分离了组件,例如其数据库层和应用程序层。并且它附带了一个简单而强大的 缓存框架

谁在幕后?

Django 最初是在美国堪萨斯州劳伦斯市的一家报纸的网络部门 World Online 开发的。Django 现在由一个国际 志愿者团队 运营。

Django 的许可证是什么?

Django 在 3 条款 BSD 许可证 下分发。这是一个开源许可证,允许广泛修改和重新分发 Django。

为什么 Django 包含 Python 的许可证文件?

Django 包含来自 Python 标准库的代码。Python 在宽松的开源许可证下分发。Python 许可证副本 与 Django 一起包含,以符合 Python 的条款。

哪些网站使用 Django?

BuiltWithDjango.com 提供了 Django 驱动网站的不断增长的列表。

Django 看起来像是一个 MVC 框架,但是你们称控制器为“视图”,视图为“模板”。为什么不使用标准名称?

嗯,标准名称是有争议的。

在我们对 MVC 的解释中,“视图”描述了呈现给用户的数据。它不一定是数据看起来的样子,而是哪些数据被呈现。视图描述了您看到哪些数据,而不是您如何看到它。这是一个细微的差别。

因此,在我们的例子中,“视图”是特定 URL 的 Python 回调函数,因为该回调函数描述了呈现哪些数据。

此外,将内容与呈现分开是明智的——这就是模板的用武之地。在 Django 中,“视图”描述了呈现哪些数据,但视图通常委托给模板,模板描述了数据如何呈现。

那么,“控制器”在哪里呢?在 Django 的情况下,它可能是框架本身:根据 Django URL 配置将请求发送到相应视图的机制。

如果您渴望缩写,您可能会说 Django 是一个“MTV”框架——即“模型”、“模板”和“视图”。这种分解更有意义。

最终,它归结为完成工作。而且,无论事物如何命名,Django 都以对我们来说最合乎逻辑的方式完成工作。

<框架 X> 做 <功能 Y>——为什么 Django 不做?

我们非常清楚,还有其他很棒的 Web 框架,我们也不反对在适当的时候借鉴想法。但是,Django 的开发正是因为我们对现状感到不满,因此请注意,“因为<框架 X>这样做”不会成为将给定功能添加到 Django 的充分理由。

为什么你们从头开始编写所有 Django,而不是使用其他 Python 库?

在最初编写 Django 时,Adrian 和 Simon 花费了相当多的时间来探索各种可用的 Python Web 框架。

在我们看来,没有一个完全符合标准。

我们很挑剔。你甚至可以称我们为完美主义者。(有期限的完美主义者。)

随着时间的推移,我们偶然发现了执行我们已经实现的功能的开源库。看到其他人以类似的方式解决类似的问题令人放心,但为时已晚无法整合外部代码:我们已经在多个生产环境中编写、测试和实现了我们自己的框架部分——而我们自己的代码令人满意地满足了我们的需求。

然而,在大多数情况下,我们发现现有的框架/工具不可避免地存在某种根本性的、致命的缺陷,这让我们感到不安。没有哪个工具能 100% 符合我们的理念。

就像我们说的:我们很挑剔。

我们在 设计理念页面 中记录了我们的理念。

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

不,Django 本身并不是 CMS,也不是任何类型的“交钥匙产品”。它是一个 Web 框架;它是一个让你构建网站的编程工具。

例如,将 Django 与 Drupal 等进行比较没有多大意义,因为 Django 是你用来创建 Drupal 之类的东西。

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

如何下载 Django 文档以便离线阅读?

Django 文档可在每个 Django tarball 版本的 docs 目录中找到。这些文档采用 reST (reStructuredText) 格式,每个文本文件对应于 Django 官方网站上的一个网页。

由于文档 存储在版本控制中,您可以像浏览代码更改一样浏览文档更改。

从技术上讲,Django 网站上的文档是从这些 reST 文档的最新开发版本生成的,因此 Django 网站上的文档可能比最新 Django 版本附带的文档提供更多信息。

如何引用 Django?

由于两个原因,很难给出官方的引用格式:不同出版物之间的引用格式可能大相径庭,并且软件的引用标准仍然存在一些争议。

例如,APA 样式 将规定类似以下内容

Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangopy.cn/.

但是,唯一真正的指导是您的出版商将接受什么,因此请获取这些指南的副本,并尽可能地填补空白。

如果您的参考文献样式指南需要出版商名称,请使用“Django 软件基金会”。

如果您需要出版地点,请使用“堪萨斯州劳伦斯市”。

如果您需要网址,请使用 https://djangopy.cn/

如果您需要名称,只需使用“Django”,无需任何标语。

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

返回顶部