Heroku如何处理Django设置?
我正在尝试为Django应用程序创建一个目录结构,它遵循Heroku推荐的结构,如本文底部所示。如您所见,它们创建了一个“设置”目录,其中包含各个设置文件(例如dev.py),这些文件的读取取决于项目部署到的层 现在,我希望会有一个与设置目录相同级别的“settings.py”文件,该文件将从设置目录中的一个设置文件导入。然而,他们的图表并没有显示任何这样的“settings.py”文件,只是显示目录。他们如何在没有顶级settings.py文件的情况下执行相应的设置文件 作为一个实验,我创建了一个settings.py文件,它与settings目录位于同一级别。问题是,当我执行“runserver”时,设置目录中的init.py文件会导致一个错误:“'settings'对象没有'ROOT_URLCONF'”。我想可能存在某种名称冲突,因为如果我将设置目录的名称更改为“conf”,我不会得到这个错误 Heroku人会认为用户正在某处设置DJANGO_设置_模块吗?如果没有,他们如何读取正确的设置文件Heroku如何处理Django设置?,django,heroku,Django,Heroku,我正在尝试为Django应用程序创建一个目录结构,它遵循Heroku推荐的结构,如本文底部所示。如您所见,它们创建了一个“设置”目录,其中包含各个设置文件(例如dev.py),这些文件的读取取决于项目部署到的层 现在,我希望会有一个与设置目录相同级别的“settings.py”文件,该文件将从设置目录中的一个设置文件导入。然而,他们的图表并没有显示任何这样的“settings.py”文件,只是显示目录。他们如何在没有顶级settings.py文件的情况下执行相应的设置文件 作为一个实验,我创建了
谢谢。当python导入名为
settings
的模块时,它会查找名为settings.py
的文件或名为settings
的目录(python模块),其中包含\uu init\uuuuu.py
。这就是python模块系统的工作方式
从那里,您可以决定在init文件中导入哪个设置文件,从prod
或dev
等内部导入内容。我想应该在那页的某个地方解释一下,但我没有一眼就找到
至于Heroku,它不做任何假设,使用django默认值。因此,正在导入模块设置
此外,我不会反对在项目repo中使用dev/prod设置,但heroku为您提供了一种使用ENV变量动态更改配置的非常好的方法。您可以了解更多关于它们的信息(非常好)。当python导入名为settings
的模块时,它会查找名为settings.py
的文件或名为settings
的目录(python模块),其中包含\uu init\uuuuu.py
。这就是python模块系统的工作方式
从那里,您可以决定在init文件中导入哪个设置文件,从prod
或dev
等内部导入内容。我想应该在那页的某个地方解释一下,但我没有一眼就找到
至于Heroku,它不做任何假设,使用django默认值。因此,正在导入模块设置
此外,我不会反对在项目repo中使用dev/prod设置,但heroku为您提供了一种使用ENV变量动态更改配置的非常好的方法。你可以在他们(非常好)的Dmitry上找到更多信息。Dmitry,因此,如果我理解正确的话,你的意思是我应该删除顶级settings.py文件,在同一级别创建一个settings目录,创建settings/dev.py和settings/uu init_uuuuu.py文件,并将语句“from dev import*”放在init文件中?我尝试了刚才描述的方法,然后运行服务器并显示Django欢迎页面。谢谢。Robert,没错,你提到的页面显示了settings directory structure.Dmitry,因此,如果我没有理解错的话,你的意思是我应该删除顶级settings.py文件,在同一级别创建一个settings目录,创建settings/dev.py和settings/\uu init\uuuuu.py文件,并将语句“from dev import*”放入init文件中?我尝试了刚才描述的方法,然后运行服务器并显示Django欢迎页面。谢谢。罗伯特,没错,你提到的页面显示了设置目录结构。