如何以模块化的方式为不同的环境配置 Django 设置?

How to configure Django settings for different environments in a modular way?

这个疑惑我已经在网上搜索过了,但是他们似乎并不真正适用于我的情况。

我有 3 个不同的配置文件 - Dev、Staging、Prod(当然)

我想正确地模块化设置而不重复。所以,我制作了 base_settings.py 并将其导入到 dev_settings.py、stg_settings.py 等

问题 - 如何以最少的更改正确调用每个环境中的脚本?

我现在正在做这个(以开发环境为例)-

python manage.py runserver --settings=core.dev_settings

到目前为止这有效,但我不相信这是一个多么好的解决方法。 因为 wsgi.py 和其他一些服务有 -

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')

我希望在不更改其他服务的配置文件的情况下做一些事情。先谢谢大家了。

PS - 我已经尽量说清楚了,但如果有任何不清楚的地方,请原谅。

只需将环境变量中的 DJANGO_SETTINGS_MODULE 设置为您想要的配置文件。

这不会让您更改任何其他服务配置文件,您甚至不需要更改 django 设置文件。

看看 Django Configurations 包。