为什么Django静态和媒体文件夹不是';t预配置?

为什么Django静态和媒体文件夹不是';t预配置?,django,convention-over-configur,Django,Convention Over Configur,我向我的兄弟演示了Django,他问了我以下问题:“为什么Django静态和媒体文件夹没有预先配置?它的目的不是成为配置框架上的约定?为什么每次启动Django项目时我都要配置这些东西?” 我无法回答他。有人能吗 附言:我不是要把Django与其他框架进行比较。我只是想理解为什么会做出这些设计决定 因为django无论如何都不应该分发媒体文件。当您阅读文档时,您可以看到静态文件应该(并且必须)由您的服务器引擎和/或生产中的某种CDN分发。Django只是来处理你的页面,而不是你的媒体。当您在开发

我向我的兄弟演示了Django,他问了我以下问题:“为什么Django静态和媒体文件夹没有预先配置?它的目的不是成为配置框架上的约定?为什么每次启动Django项目时我都要配置这些东西?”

我无法回答他。有人能吗


附言:我不是要把Django与其他框架进行比较。我只是想理解为什么会做出这些设计决定

因为django无论如何都不应该分发媒体文件。当您阅读文档时,您可以看到静态文件应该(并且必须)由您的服务器引擎和/或生产中的某种CDN分发。Django只是来处理你的页面,而不是你的媒体。当您在开发时,实际上,您必须使用django来分发静态文件。但您可以使用python脚本生成并管理它。对我来说,最好的方法之一是:。这将使您的文件处于开发模式,但这将在生产中对其进行优化。

因为django无论如何都不应该分发媒体文件。当您阅读文档时,您可以看到静态文件应该(并且必须)由您的服务器引擎和/或生产中的某种CDN分发。Django只是来处理你的页面,而不是你的媒体。当您在开发时,实际上,您必须使用django来分发静态文件。但您可以使用python脚本生成并管理它。对我来说,最好的方法之一是:。这将使您的文件处于开发模式,但这将在生产中对其进行优化。

Django绝对不是配置框架的约定。您的兄弟可能正在考虑Rails,它确实遵循这一原则——但Django遵循Python的“显式优于隐式”原则。

Django绝对不是配置框架的约定。您的兄弟可能正在考虑Rails,它确实遵循这一原则——但Django遵循Python原则“显式优于隐式”。

“当您在生产时”——正因为如此。我知道我不应该通过Django提供静态文件,但是如果Django开发过程假设我将在开发阶段使用开发服务器,那么它不应该假设我将在这个阶段使用Django提供静态文件吗?事实上,你是对的。默认情况下,这应该在开发模式下实现。但另一方面,我不认为Django是如此“约定优先于配置”,在Django中,我经常不得不编写巨大的配置文件。尝试Rails,您将看到约定对于ruby程序员意味着什么。这可能是某种愚蠢的事情,但我认为Django程序员更喜欢明确地声明一切。我知道Rails和一些PHP框架(如Cake、CI、Yii和Zend),这些配置是自动生成的。而且我也不太喜欢,你提出的想法很有道理。“显式比隐式好”-Python的Zen“当您在生产时”-正因为如此。我知道我不应该通过Django提供静态文件,但是如果Django开发过程假设我将在开发阶段使用开发服务器,那么它不应该假设我将在这个阶段使用Django提供静态文件吗?事实上,你是对的。默认情况下,这应该在开发模式下实现。但另一方面,我不认为Django是如此“约定优先于配置”,在Django中,我经常不得不编写巨大的配置文件。尝试Rails,您将看到约定对于ruby程序员意味着什么。这可能是某种愚蠢的事情,但我认为Django程序员更喜欢明确地声明一切。我知道Rails和一些PHP框架(如Cake、CI、Yii和Zend),这些配置是自动生成的。而且我也不太喜欢,你提出的想法很有道理。“显式比隐式好”-毕托尼的禅宗同意你的观点,但“显式比隐式好”并不是“手动操作以显式”的借口我同意你们的观点,但“显式比隐式好”并不是“手动操作以显式”的借口