我们正在尝试确定最佳实践来为我们想要使用的不同环境设置 Django 设置,例如本地开发、登台和生产。
仔细阅读,我们发现使用了两种主要技术:
在主 settings.py 文件末尾导入的 settings_local.py 文件,未版本化
我们更喜欢第二种方式,因为它看起来非常模块化和“python”方式,但是,作为指南仍然不完整,如何说 Django 为每个不同的环境使用哪个模块?
你认为这是管理 Django 设置的好方法吗?
谢谢大家。
我们正在尝试确定最佳实践来为我们想要使用的不同环境设置 Django 设置,例如本地开发、登台和生产。
仔细阅读,我们发现使用了两种主要技术:
在主 settings.py 文件末尾导入的 settings_local.py 文件,未版本化
我们更喜欢第二种方式,因为它看起来非常模块化和“python”方式,但是,作为指南仍然不完整,如何说 Django 为每个不同的环境使用哪个模块?
你认为这是管理 Django 设置的好方法吗?
谢谢大家。
使用这两种方法也是正常的。例如,您可以在每台开发人员机器上拥有不同的环境,如“开发”、“暂存”、“生产”和仅限本地设置。
通常,只是从当前目录(或用于配置文件的特殊目录)settings_local.py
的末尾导入。settings.py
为了管理不同的环境,我们使用env
变量。它看起来像这样:
$ export MY_PROJECT_ENV=production
$ python
>>> import os
>>> os.environ["MY_PROJECT_ENV"]
'production'
在settings.py
这看起来像
ENV = os.environ.get("MY_PROJECT_ENV", "production")
LOGGING_LEVEL = "debug" if ENV == "development" else "error"
为了更方便的操作export
,您可以将所有此类导出添加到您的~/.profile
(或类似的功能文件)。