Pythonと「Flask」のBlueprintでモジュールの分割する方法について入門者向けにまとめました。
FlaskのBlueprintでモジュールの分割
Flaskのモジュール「Blueprint」は、アプリケーションの機能を分割することができます。
前回までの解説記事では、1つのメインファイル(Pythonファイル)に全てのルーティングと関数を記述していましたが、ルーティングと関数毎にファイルを分割したほうが、Webアプリケーションの規模が大きくなるほど保守しやすくなります。
具体的にコードを見たほうがわかりやすいので、以下に簡単なサンプルを示します。
サンプルコード
今回のサンプルコードのディレクトリ構成は以下のとおりです。
「Blueprint」でトップページ用とログインページ用のPythonファイルに分割します。
■ディレクトリ構成
root/ |__server.py |__index.py ← トップページ用の関数とルーティングを記述したPythonファイル |__login.py ← ログインページ用の関数とルーティングを記述したPythonファイル |__templates/ |__index.html ← トップページ用の子テンプレートファイル |__login.html ← ログインページ用の子テンプレートファイル |__base.html ← 親テンプレートファイル
■server.py
→pythonファイル(app.runするもの)
■index.py
→トップページのルーティングと関数の部分をモジュール化
■login.py
→ログインのルーティングと関数の部分をモジュール化
■templates/base.html
→親テンプレートのHTMLファイル(共通化部分)
■templates/index.html
→子テンプレートのHTMLファイル1(トップページのコンテンツ部分)
■templates/login.html
→子テンプレートのHTMLファイル2(ログインページのコンテンツ部分)
上記のサンプルコードを実行します。
そして、ブラウザで「http://127.0.0.1:8080/」にアクセスすると、index関数が実行されるため画面には「トップページへ」と表示されます。
また、ブラウザで「http://127.0.0.1:8080/login」にアクセスすると、login関数が実行されるため画面には「ログインページへ」と表示されます。
コメント