La façon la plus simple serait de créer une fonction qui prend une instance d'une application Flask
et enregistre tous vos plans sur elle en une seule fois. Quelque chose comme ceci:
# sub_site/__init__.py
from .sub_page1 import bp as sb1bp
from .sub_page2 import bp as sb2bp
# ... etc. ...
def register_sub_site(app, url_prefix="/sub-site"):
app.register_blueprint(sb1bp, url_prefix=url_prefix)
app.register_blueprint(sb2bp, url_prefix=url_prefix)
# ... etc. ...
# sub_site/sub_page1.py
from flask import Blueprint
bp = Blueprint("sub_page1", __name__)
@bp.route("/")
def sub_page1_index():
pass
Alternativement, vous pouvez utiliser quelque chose comme autoload
function de HipPocket
(divulgation complète: je l'ai écrit HipPocket
) pour simplifier la gestion des importations:
# sub_site/__init__.py
from hip_pocket.tasks import autoload
def register_sub_site(app,
url_prefix="/sub-site",
base_import_name="sub_site"):
autoload(app, base_import_name, blueprint_name="bp")
Cependant, comme il est actuellement vous Impossible d'utiliser la même structure que l'exemple n ° 1 (HipPocket suppose que vous utilisez des packages pour chaque Blueprint). Au lieu de cela, votre mise en page devrait ressembler à ceci:
# sub_site/sub_page1/__init__.py
# This space intentionally left blank
# sub_site/sub_page1/routes.py
from flask import Blueprint
bp = Blueprint("sub_page1", __name__)
@bp.route("/")
def sub_page1_index():
pass
http://stackoverflow.com/a/36326234/742173 –