我想扩展一个大致使用以下代码的应用程序:
app = Flask('app')
app.config.from_pyfile('default_config.py')
app.config.from_pyfile('local_config.py', silent=True)
在那里,可以使用 访问设置app.config['value']
。在我的扩展中,我只想使用配置文件,没有 Flask 应用程序,也没有创建 Flask 对象。
我唯一的想法是:
import default_config as dc
import config as cc
vars_dc = [var for var in dir(dc) if not var.startswith('__')]
settings = {var: getattr(dc, var) for var in vars_dc}
vars_cc = [var for var in dir(cc) if not var.startswith('__')]
settings.update({var: getattr(cc, var) for var in vars_cc})
这似乎不是一个好的解决方案,因为有很多陷阱需要考虑(配置文件中的错误等,所以我必须重新实现所有异常处理和东西)
有没有实现这种功能的模块?
* 编辑 *
#default_config.py
HOST = 'myhostname'
PORT = 7453
DEBUG = False
MY_URLS = []