【Python/Flask】Blueprintでモジュールの分割

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関数が実行されるため画面には「ログインページへ」と表示されます。

関連ページ

【Flask超入門】簡単かつ効率的にWebアプリを作ろう
PythonモジュールFlaskの使い方、Webアプリケーションを作る方法について入門者向けにまとめました。

コメント