1. ホーム
  2. python

[解決済み] Python Flaskアプリを複数ファイルに分割する

2022-12-18 23:10:51

質問

flaskアプリを複数のファイルに分割する方法がわからず困っています。

私はWebサービスを作成しており、私はちょうど私が1つの巨大なPythonファイルを持っていないように、異なるファイル(AccountAPI.py、UploadAPI.py、...)にAPIを分割したいのですが。

私はBlueprintsでこれを行うことができると読んだが、私はそのルートが私にとって正しいものであると完全に確信しているわけではありません。

最終的には、1 つのメイン python ファイルを実行し、他のファイルをインクルードして、実行時にそれらが 1 つの大きなファイルと見なされるようにしたいのですが。

例えば、私がMain.pyとAccountAPI.pyを持っている場合、私はこれを行うことができるようにしたいのです。

Main.pyを実行します。

from flask import Flask
import AccountAPI

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

AccountAPI.pyです。

@app.route("/account")
def accountList():
    return "list of accounts"

この例では明らかにうまくいかないと思いますが、そのようなことは可能なのでしょうか?

ありがとうございます。

どのように解決するのですか?

はい、ブループリントを使用するのが正しい方法です。あなたがやろうとしていることは、このように実現することができます。

メイン.py

from flask import Flask
from AccountAPI import account_api

app = Flask(__name__)

app.register_blueprint(account_api)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

アカウントAPI.py

from flask import Blueprint

account_api = Blueprint('account_api', __name__)

@account_api.route("/account")
def accountList():
    return "list of accounts"

もしこれがオプションであるなら、異なるAPI/ブループリントをきれいに分離するために、異なるURLプレフィックスを使用することを考慮してもよいでしょう。これは、上記を少し修正することで可能です。 register_blueprint の呼び出しを少し修正することで可能です。

app.register_blueprint(account_api, url_prefix='/accounts')

さらに詳しいドキュメントをご覧になりたい方は 公式ドキュメント .