Flaskアプリを開発していて、app.pyがだんだん肥大化して見通しが悪くなることがあります。ルート(エンドポイント)定義をapp.py以外に切り出してコードをスッキリさせることができます。
一般的な方法は、FlaskのBlueprintを使用することです。Blueprintは、アプリケーションの機能をモジュール化して、アプリケーション全体にわたって再利用可能なコンポーネントを作成するための仕組みです。
1. Blueprintを作成する
別のファイルにルートを定義するために、新しいPythonファイル(例:routes.py)を作成し、Blueprintを使用してルートを定義します。
# routes.py
from flask import Blueprint
# Blueprintオブジェクトを作成します。
# "my_routes"はBlueprintの名前で、第2引数はBlueprintが属するモジュールの名前です。
my_routes_bp = Blueprint('my_routes', __name__)
# ルートを定義します。
@my_routes_bp.route('/my_route')
def my_route():
return 'This is my custom route!'
Blueprintを登録する
app.py(または別のエントリーポイントファイル)で、作成したBlueprintをアプリケーションに登録します。
# app.py
from flask import Flask
from routes import my_routes_bp # 作成したBlueprintをインポートします
app = Flask(__name__)
# Blueprintを登録します。
app.register_blueprint(my_routes_bp)
if __name__ == "__main__":
app.run()
これで、routes.pyで定義した/my_routeエンドポイントが、app.pyで定義したFlaskアプリケーションに組み込まれます。