Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku如何处理Django设置?_Django_Heroku - Fatal编程技术网

Heroku如何处理Django设置?

Heroku如何处理Django设置?,django,heroku,Django,Heroku,我正在尝试为Django应用程序创建一个目录结构,它遵循Heroku推荐的结构,如本文底部所示。如您所见,它们创建了一个“设置”目录,其中包含各个设置文件(例如dev.py),这些文件的读取取决于项目部署到的层 现在,我希望会有一个与设置目录相同级别的“settings.py”文件,该文件将从设置目录中的一个设置文件导入。然而,他们的图表并没有显示任何这样的“settings.py”文件,只是显示目录。他们如何在没有顶级settings.py文件的情况下执行相应的设置文件 作为一个实验,我创建了

我正在尝试为Django应用程序创建一个目录结构,它遵循Heroku推荐的结构,如本文底部所示。如您所见,它们创建了一个“设置”目录,其中包含各个设置文件(例如dev.py),这些文件的读取取决于项目部署到的层

现在,我希望会有一个与设置目录相同级别的“settings.py”文件,该文件将从设置目录中的一个设置文件导入。然而,他们的图表并没有显示任何这样的“settings.py”文件,只是显示目录。他们如何在没有顶级settings.py文件的情况下执行相应的设置文件

作为一个实验,我创建了一个settings.py文件,它与settings目录位于同一级别。问题是,当我执行“runserver”时,设置目录中的init.py文件会导致一个错误:“'settings'对象没有'ROOT_URLCONF'”。我想可能存在某种名称冲突,因为如果我将设置目录的名称更改为“conf”,我不会得到这个错误

Heroku人会认为用户正在某处设置DJANGO_设置_模块吗?如果没有,他们如何读取正确的设置文件


谢谢。

当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欢迎页面。谢谢。罗伯特,没错,你提到的页面显示了设置目录结构。