概要
設定ファイルに Python ファイルを使うことでデフォルトの値や環境変数を使って柔軟に設定を定義することができます
環境
- Python 3.8.3
- flask 1.1.2
準備
pipenv install flask
アプリ作成
mkdir test
vim test/__ini__.py
from flask import Flask
app = Flask(__name__)
app.config.from_object("test.config.Config")
app.config.from_object
にクラスを指定することでそのクラスが持つクラス定数を参照することができます
vim run.py
from test import app
@app.route("/")
def index():
return "%s,%s" % (app.config["NAME"], app.config["AGE"])
app.run(debug=True)
設定ファイル作成
mkdir test/config
vim test/config/__init__.py
import os
class Config:
NAME = "hawksnowlog"
AGE = os.environ.get("AGE", 10)
スーパークラスで共通の設定を管理する
上書きしたい設定だけ継承したクラスで再定義してあげましょう
AGE
は Config クラスのものが使われます
import os
class Config:
NAME = "hawksnowlog"
AGE = os.environ.get("AGE", 10)
class DevConfig(Config):
NAME = "dev_hawksnowlog"
config ProductionConfig(Config):
NAME = "pro_hawksnowlog"
動作確認
pipenv run python run.py
curl localhost:5000
=> hawksnowlog,10
AGE=50 pipenv run python run.py
curl localhost:5000
=> hawksnowlog,50
0 件のコメント:
コメントを投稿