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_应用程序中编写任何代码来注册它。你已经看到了吗?