Heroku Config Vars和Django

时间:2019-07-17 23:42:47

标签: django heroku

我想为每种环境(本地与暂存)进行特定设置。我在heroku临时应用程序中设置了Config Vars,并将DEBUG设置设置为false来进行尝试,但是没有用。我错过了什么还是做错了吗?

我的seetings.py文件 My seetings.py file

在登台应用程序中配置Vars Config Vars in the staging app

尝试做错事情的结果 Result when I tried somthing wrong

2 个答案:

答案 0 :(得分:1)

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

还要在与这3个设置文件相同的位置创建__init__.py,并在其中放置__init__.py的{​​{1}}中。在from your_project_name.settings.base import *中,您将拥有prod和dev之间的所有共享设置,而在base.pyprod.py中,您将dev.py从基础“继承”设置。 py文件。这是唯一建议以这种方式导入的情况。

然后,您可以在生产环境中将from .base import *环境变量设置为使用DJANGO_SETTINGS_MODULE而不是默认设置变量。

答案 1 :(得分:0)

设置文件中的

DEBUG需要通过环境变量(如果有)进行设置。

因此,将DEBUG = True更改为DEBUG = os.environ.get('DEBUG', True),就可以了。通常将其称为功能标记(模式)。


响应:

如果使用的是“两个瓢”模式,则@ wjh18在正确的路径上。

我概述的模式已经使用多年。

您能看到python终端通过heroku run bash --app APPNAME,然后依次是pythonimport osos.environ.get('DEBUG')在Heroku上抓取了什么。应当与您在Heroku上的设置匹配。如果是这样,则堆栈中可能有某些东西阻止设置(延迟加载)正常工作。

如果您偏离已建立的模式,Django中存在许多陷阱。

以防万一,env var仅适用于Django设置页面,否则通过正确导入设置(DEBUG)访问Django from django.conf import settings