2

我们正在尝试确定最佳实践来为我们想要使用的不同环境设置 Django 设置,例如本地开发、登台和生产。

仔细阅读,我们发现使用了两种主要技术

  1. 在主 settings.py 文件末尾导入的 settings_local.py 文件,未版本化

  2. 设置模块方式,设置成为python模块,特定的env.py文件在里面

我们更喜欢第二种方式,因为它看起来非常模块化和“python”方式,但是,作为指南仍然不完整,如何说 Django 为每个不同的环境使用哪个模块?

你认为这是管理 Django 设置的好方法吗?

谢谢大家。

4

1 回答 1

0

使用这两种方法也是正常的。例如,您可以在每台开发人员机器上拥有不同的环境,如“开发”、“暂存”、“生产”和仅限本地设置。

通常,只是从当前目录(或用于配置文件的特殊目录)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(或类似的功能文件)。

于 2012-09-09T08:16:12.393 回答