在应用工厂中创建Flask扩展时导入它

时间:2017-05-31 03:33:00

标签: python flask

我想在我的应用程序中的不同模块中使用Flask-Perm的装饰器。我正在使用app工厂模式。如果我在工厂中创建扩展,我无法导入它以在其他模块中使用。如何在使用应用工厂时导入扩展程序?

from flask_perm import Perm

def create_app():
    app = Flask(__name__)
    perm = Perm(app)
    return app

1 个答案:

答案 0 :(得分:2)

Flask-Perm的docs显示如何在顶部执行此操作。

在工厂外创建扩展程序。在工厂内部启动扩展。支持应用工厂的每个Flask扩展都使用此模式。

perm = Perm()

def create_app():
    app = Flask(__name__)
    perm.init_app(app)
    return app

现在,您可以在需要访问它的地方使用from myproject import perm