めも

これはメモ。

Flaskのapp.pyをいくつかのファイルに分割する

Blueprintを使う

app.pyの機能の一部を divided_app.pyに移したいと想定してます。

divided_app.py

sample = Blueprint('sample', __name__, template_folder='templates')
@sample.route('/hoge')
def hoge():
    return render_template('templates/hoge.html')

app.py

from divided_app import sample

app = Flask(__name__)
app.register_blueprint(sample, url_prefix='/sample_url')

これで localhost:5000/sample_url/hoge などから divided_app.py以下のhogeを呼出せます。url_prefix='/sample_url'でプレフィックスを指定してます。より詳しくはドキュメントを参照してください。

Modular Applications with Blueprints — Flask 1.0.2 documentation

ファイル・ディレクトリ構成

appをわけ出したり大規模になってきた時のファイル構成の例。

プロトタイピング

以下にテンプレートが用意されています。