我的一个模块中有一个全局标记,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
这将使用正确的设置,来自production.py
或来自development.py
,具体取决于RUNNING_MODE
。
是否有任何可接受的方法来处理这种设置?我如何构建目录/模块,只需更改RUNNING_MODE
config/top.py
整个配置透明地发生?
注意:我不想在构建过程中使用它,而是将其嵌入模块结构中。也就是说,我不希望构建过程修改我的任何模块。
答案 0 :(得分: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