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













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

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でWebアプリを作るなら

Flask+SQLiteで5分でWebアプリ開発

2019年5月3日












★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる

気に入ったらLet's Share!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

ちゆり

6年間化学を専攻していたのになぜか一部上場のIT企業のエンジニアへ。脱サラ田舎暮らしに憧れ,なんだかんだプログラミングが好き。口癖は仕事辞めたい。凡人にはなりたくない凡人。