開発時にflaskサーバを起動する方法はいくつかある。例えば、
・Flaskサーバのデバッグ構成を作成してそれを実行する pleiades.io
・flask cli経由で起動する。つまり、flask run
を実行しデバッガはpython Remote Debug構成を作ってサーバ起動後にattachする。
など。
オススメなのはflask_script.Managerを使う方法。以下のようにサーバを起動するPythonスクリプトを書いてそれを素のPythonスクリプトと同じようにデバッグ実行する。
(起動時のparameterにrunserver
を指定する必要あり。)
from flask_script import Manager, Server from my_service import create_app from my_service import ServiceConfig class ApplicationManager(object): def __init__(self): app = create_app() config = ServiceConfig() app.config.from_object(config) manager = Manager(app) manager.add_command('runserver', Server(host='0.0.0.0', port='27090')) self._manager = manager def run(self): self._manager.run() if __name__ == "__main__": app_manager = ApplicationManager() app_manager.run()
これにメリットは以下。 ・起動時のポート番号などの情報をコミットできる。デバッグ構成もshareオプションをチェックするとコミットできるが共有したくない項目も共有されてしまう(Python Interpreterの設定とか) ・動的に設定を変更できる。例えば個人の開発環境に依存する設定は設定ファイルから読み込んで設定するとか。