1
我想訪問在Flask應用程序中註冊的一些擴展。我嘗試使用app.extensions
,但我初始化的一些擴展名不在字典中。Flask擴展程序未在app.extensions中註冊
from flask import current_app
current_app.extensions.get(plugin_name)
extensions.py
:
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_mail import Mail
from flask_debugtoolbar import DebugToolbarExtension
from flask_images import Images
from flask_redis import FlaskRedis
from flask_plugins import PluginManager
db = SQLAlchemy()
migrate = Migrate()
mail = Mail()
toolbar = DebugToolbarExtension()
images = Images()
redis = FlaskRedis()
plugin_manager = PluginManager()
main.py
:
def configure_extensions(app):
db.init_app(app)
migrate.init_app(app, db)
mail.init_app(app)
toolbar.init_app(app)
images.init_app(app)
redis.init_app(app)
plugin_manager.init_app(
app,
plugin_folder="app/plugins",
plugin_import_path='app.plugins',
)
當我看着current_app.extensions
,我只看到了一些擴展。 plugin_manager
和toolbar
不在列表中。
>>> for key in app.extensions: print(key)
migrate
mail
images
sqlalchemy
redis
爲什麼在app.extensions
中沒有註冊一些擴展?我是否錯誤地初始化了它們?我怎樣才能得到擴展?
感謝您的澄清,我會接受的答案,請你不能舉一個例子如何擴展可以添加到'app.extensions'我需要知道,以糾正舊擴展中的錯誤,我需要使用,謝謝 –
例如'app.extensions ['debug_toolbar'] = toolbar'。 – davidism
所以就這麼簡單,謝謝你! –