おおよそ次のコードを使用するアプリケーションを拡張したいと思います。
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 = []