高级配置方式
一 目录结构
二 程式代码
start.py
import os
os.environ['USER_SETTINGS'] = "config.settings" # 设置环境变量
from lib.conf.config import settings
print(settings.__dict__) # {'BBBB': 'bbbbb', 'AAAA': 'aaaaa', 'DDDD': 'ddddd', 'CCCC': 'ccccc'}settings.py
""" 用户自定义配置文件 """ CCCC = 'ccccc' DDDD = 'ddddd'
global_settings.py
""" 内置配置文件 """ AAAA = 'aaaaa' BBBB = 'bbbbb'
config.py
import os
import importlib
from lib.conf import global_settings
# from config import settings
class Settings:
"""
获取默认配置及自定义配置
"""
def __init__(self):
# 获取默认配置
print(dir(global_settings)) # ['AAAA', 'BBBB', '__builtins__', '__cached__', '__doc__', '__file__', ...]
for name in dir(global_settings):
if name.isupper():
value = getattr(global_settings,name)
setattr(self,name,value)
# 获取自定义配置,如与默认同名则覆盖
settings_module = os.environ.get('USER_SETTINGS')
if not settings_module:
return
user_settings = importlib.import_module(settings_module)
for name in dir(user_settings):
if name.isupper():
value = getattr(user_settings,name)
setattr(self,name,value)
settings = Settings()


浙公网安备 33010602011771号