是否可以通过dinamically注册蓝图?
这是结构:
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)
有没有办法自动导入这些蓝图?
由于
答案 0 :(得分:0)
这是您实现这一目标的方法
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']))