【发布时间】:2014-03-01 22:54:45
【问题描述】:
我想知道如何为不同的环境选择不同的 settings.py 文件。到目前为止,我想到的是更改manage.py 文件并添加一个配置值,例如stage,它将对应于设置文件名。如下图:
本地主机
heroku config:add STAGE="project.settings.prod"
生产
heroku config:add STAGE="project.settings.prod"
所以而不是基础manage.py:
if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings.production") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)
我们会:
if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", os.environ['stage']) from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)
这感觉不自然,如果有更好的方法来处理这种情况,我正在寻找更多信息。设置文件夹示例如下:
settings/
__init__.py
base.py
local.py
staging.py
test.py
prod.py
或者有没有办法在 Procfile 中添加--settings 选项?目前我的 Procfile 是:
web: gunicorn project.wsgi
【问题讨论】: