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,我想为每个环境(本地与暂存)进行特定设置。我在我的heroku staging应用程序中设置了配置变量,并将调试设置设置为false以进行尝试,但它不起作用。我是遗漏了什么还是弄错了 My seetings.py文件 登台应用程序中的配置变量 当我试着做错事时的结果 设置文件中的调试需要通过环境变量(如果可用)进行设置 因此,将DEBUG=True更改为DEBUG=os.environ.get('DEBUG',True),您应该会没事的。这通常称为特征标志(模式) 答复: 如果您使用的是“

我想为每个环境(本地与暂存)进行特定设置。我在我的heroku staging应用程序中设置了配置变量,并将调试设置设置为false以进行尝试,但它不起作用。我是遗漏了什么还是弄错了

My seetings.py文件

登台应用程序中的配置变量

当我试着做错事时的结果
设置文件中的调试需要通过环境变量(如果可用)进行设置

因此,将
DEBUG=True
更改为
DEBUG=os.environ.get('DEBUG',True)
,您应该会没事的。这通常称为特征标志(模式)


答复:

如果您使用的是“两个勺子”模式,@wjh18的路径是正确的

我概述的模式是坚实的,在使用多年

你能看到python终端通过Heroku运行bash--app APPNAME,然后是python然后是导入os然后是os.environ.get('DEBUG')在Heroku上获取了什么吗。应与Heroku上的设置相匹配。如果是这样的话,堆栈中可能存在阻止设置(延迟加载)正常工作的情况

Django中存在着许多问题,就是你偏离了既定的模式


以防万一,env var仅用于Django设置页面,否则通过正确导入设置访问Django
DEBUG
来自Django.conf导入设置

您应该在当前
settings.py
文件所在的目录中创建一个目录,并将其命名为
settings
。然后在此目录中创建
base.py
dev.py
prod.py
文件

另外,在与这3个设置文件相同的位置创建一个
\uuuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
从您的项目\u name.settings.base导入中放入
。在
base.py
中,您将拥有prod和dev之间的所有共享设置,在
prod.py
dev.py
中,您只需从.base import*
中继承base.py文件中的设置即可。这是建议像这样导入的唯一情况之一


然后,您可以在生产环境中设置
DJANGO\u SETTINGS\u MODULE
环境变量,以使用
my\u project\u name.SETTINGS.prod
而不是默认的设置变量。

仍然存在同样的问题。我想要的是在本地settings.py文件中设置DEBUG=True,在heroku中部署的staging或production settings.py文件中设置DEBUG=False。。它们不能被搜索或复制,可用性差。相反,将代码作为文本直接粘贴到问题中。如果选择它并单击
{}
按钮或Ctrl+K,代码块将缩进四个空格,这将使其呈现为代码。