Python 注册动态蓝图

Python 注册动态蓝图,python,flask,Python,Flask,有没有可能通过电子方式注册蓝图 结构如下: project |---app | | | |-------- plugin | | | | | |--- __init__.py | | |--- views.py | | |--- template | |

有没有可能通过电子方式注册蓝图

结构如下:

project
     |---app
     |     |
     |     |-------- plugin
     |     |             |
     |     |             |--- __init__.py
     |     |             |--- views.py
     |     |             |--- template
     |     |             |          |
     |     |             |          |-- plugin.html
     |     |             |--- functions.py
     |     |             |--- models.py 
     |     |
     |     |-------- plugin2
     |     |             |-- ....
     |     |
     |     |-------- __init__.py 
     | 
     |--------manage.py
该插件是一个蓝图:

plugin = Blueprint('plugin', __name__, template_folder='template')
在app/init.py中

def create_app(config_name):
   app = Flask(__name__, instance_relative_config=True)
   app.config.from_object(app_config[config_name])
   app.config.from_pyfile('config.py')

   # HERE THE IMPORTS
   from app.plugin import models
   from .plugin import plugin
   app.register_blueprint(plugin)
有没有办法自动导入这些蓝图


谢谢

以下是你如何做到这一点的

import importlib

SERVICES = [
    {'path': '.plugin.views', 'blueprint': 'plugin'}, 
    {'path': '.plugin2.views', 'blueprint': 'plugin2'}
]

for service in SERVICES:
    module = importlib.import_module(service['path'], package='app')
    app.register_blueprint(getattr(module, service['blueprint']))

那么应用程序下的每个文件夹呢?让我解释一下:“plugin”文件夹是git子模块。我想在“创建应用程序”中动态添加此蓝图。所以,如果我添加子模块,我不会在create_应用程序中编写任何代码来注册它。你已经看到了吗?