0

我的一个模块中有一个全局标志config/top.py

RUNNING_MODE = "production"  # could also be "development", set manually

根据这个标志,我想包括一些生产/开发设置。例如,在production.py我想要拥有:

LOG_LEVEL = "WARNING"

并在development.py

LOG_LEVEL = "INFO"

(还有很多设置要设置)

目标是能够在我的任何模块中透明地使用这些设置,比如说test.py

from config.settings import LOG_LEVEL

这将使用正确的设置,无论是 fromproduction.py还是 from development.py,取决于RUNNING_MODE

是否有任何可接受的方法来处理这种设置?我将如何构建目录/模块,以便仅通过更改整个配置RUNNING_MODE来透明地发生?config/top.py

注意:我不希望在构建过程中使用它,而是将其嵌入到模块结构中。也就是说,我不希望构建过程修改我的任何模块。

4

1 回答 1

2

您可以轻松实现这一目标。

以下是文件夹结构:

> config/
    settings.py
    production.py
    development.py

现在在 settings.py 中:

RUNNING_MODE = "production"  # could also be "development", set manually

if ENVIRONMENT == "production":
    from production import *
elif ENVIRONMENT == "development":
    from development import *

将所有与环境相关的设置保存在单独的文件中。

然后,在 views.py 或项目中的任何其他文件中。

from config.settings import LOG_LEVEL
于 2013-11-28T11:35:28.630 回答