如何正确注册Flask蓝图

2024-04-30 06:10:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过一个函数来注册我的蓝图,该函数查找具有“blueprint”属性的模块,但它找不到我定义的管理蓝图。为什么不起作用? 我检查了类似的问题,但找不到解决方案

同样,我也很高兴知道@Davidism为什么结束了这个问题。提前谢谢

# app/__init__.py
from flask import Flask
from werkzeug.utils import import_string, find_modules


def register_blueprints(app):
    for name in find_modules('app.blueprints', recursive=True):
        mod = import_string(name)
        if hasattr(mod, 'blueprint'):
            app.register_blueprint(mod.blueprint)
        

def create_app():
    app = Flask(__name__)
    
    with app.app_context():
        register_blueprints(app)
    
        return app
# app/blueprints/admin/__init__.py
from flask import Blueprint

bp = Blueprint('admin', __name__, url_prefix='/admin')
# app/blueprints/admin/routes.py
from . import bp

@bp.route('/admin')
def admin():
    return 'Admin'

Tags: 函数namefrompyimportregistermodapp