ルーティングを分ける - Flask

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

ディレクトリ構成

  • flask_app
    • controllers
      • myapp.py
    • static
      • css
        • style.css
      • js
        • scripts.js
    • templates
      • myapp
        • index.html
      • share
        • layout.html
    • __init__.py
    • app.py

初期ファイルを分ける

Blueprint は Flask をインストールすると Blueprint も合わせてインストールされています。

flask_app/app.py

from . import create_app

app = create_app()

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

「 __init__.py 」にデータベースの設定など初期設定を必要に応じて行います。

flask_app/__init__.py

from flask import Flask
from .controllers.myapp import myapp

def create_app():
    app = Flask(__name__)
    
    app_name = [
        myapp,
    ]

    for i in app_name:
        app.register_blueprint(i)
    
    return app

「 controllers 」ディレクトリを作成し、ルーティングを分けます。

from flask import Blueprint, render_template, request, redirect

myapp = Blueprint("myapp", __name__, url_prefix='/myapp')

@myapp.route('/')
def index():
    return render_template('myapp/index.html')