【Flask】モジュールを分割するならBlueprintを使う

  • URLをコピーしました!

こんにちは,ちゆりです。

Flaskで大規模な開発を行っていると,用途ごとに.pyファイルモジュール化し,分割して機能ごとにわかりやすくまとめたいですよね。

Flask開発者

でも,Flaskでモジュール分割を行う場合,テンプレート情報などはどのように引き継いでいくのだろう。

今回はFlaskのpythonモジュールの分割方法,
その際のレンダリング方法について紹介していきます。

目次

Blueprintの使い方

ざっと調べた感じ,Flaskを使う際のpythonのモジュール化はBlueprintモジュールを利用するのが簡単でしょう。

ということで,Blueprintモジュールを準備しましょう。
BlueprintモジュールはFlaskのパッケージに含まれているため追加でpipコマンドは必要ありません。(Flaskはもちろん必要ですが,この記事はFlask開発前提のお話ですから問題ないでしょう。)

from flask import Blueprint

でインポートできます。

ファイル構成

今回は例として以下のようなファイル構成で考えてみましょう。

work_folder
     ├ app.py
     ├ app_module.py
     ├ templates
     │    ├ index.html
     │    └ login.html
     └ static
          └ style.css

app.pyメインで実行させるファイルapp_module.py分割したいモジュールファイルとします。

Blueprintモジュールの記述方法

app.pyそしてapp_module.pyは以下のようになります。

app.py

# Flaskのインポート
from flask import Flask
#他モジュール(.py)のインポート
from app_module import module_api  #追加モジュール

app = Flask(__name__)

#他モジュール(.py)から呼び出す
app.register_blueprint(module_api)

#あとはレンダリング等の処理を記述
@app.route('/')
def login():
    return "HELLO"

app_module.py

# Flaskのインポート,Blueprintのインポート
from flask import Flask, Blueprint

#Blueprintでモジュールの登録
module_api = Blueprint('app_module', __name__)

#レンダリング処理を記述
@module_api.route("/make")
def module_make():
    return "Success"

Blueprintのレンダリング

上記のような記述で127.0.0.1:5000にアクセスした際は,

127.0.0.1:5000ではHELLOと出力

127.0.0.1:5000/makeではSuccessと出力されます。

これでBlueprintモジュールにてpyファイルの分割が可能となりました。

url_prefixにてレンダリング

module_api = Blueprint('app_module', __name__, url_prefix='/add')

url_prefix='追加したいpath'

のオプションを追加することで レンダリングした際のパスを編集することが可能となります。

この場合は,127.0.0.1:5000/add/makeでSuccessの表示が可能となりました。url_prefixで走査パスの追加が可能です。

URL分割により機能の分割もわかりやすく記述することができますね。

Flaskについて学びたい方へ

書籍で学びたいなら

Flaskはサクッとシステムが作れて、割と幅広くなんでもできるので僕の好きなフレームワークです。
もっと学びたい方へ僕はこの本をおすすめします。Webアプリ開発全体の技術も同時に学べます。

Flask使いになるならぜひ、この一冊。
図解も多くWEBシステム全体もつかみやすく、どのようにシステムが動いているのかが理解できるはずです。

オンライン授業で学びたいなら

僕はオンラインスクールはUdemy をおすすめします。定番の授業からマニアックな授業まで幅広く扱っているので、学びたいことは大体あります。

今回はPython+Flaskの授業をおすすめします。Flaskの基礎から応用までこの授業で学べます

 

★FlaskでWebアプリを作るなら

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次