This question already has an answer here:
Access a Flask extension that is defined in the app factory
(1个答案)
去年关闭。
我想在应用程序的不同模块中使用Flask-Perm的装饰器。我正在使用应用程序工厂模式。如果我在工厂中创建扩展名,则无法导入该扩展名以在其他模块中使用。使用应用程序工厂时如何导入扩展?
现在,您可以在需要访问的任何地方使用
(1个答案)
去年关闭。
我想在应用程序的不同模块中使用Flask-Perm的装饰器。我正在使用应用程序工厂模式。如果我在工厂中创建扩展名,则无法导入该扩展名以在其他模块中使用。使用应用程序工厂时如何导入扩展?
from flask_perm import Perm
def create_app():
app = Flask(__name__)
perm = Perm(app)
return app
最佳答案
Flask-Perm的docs在顶部显示了如何执行此操作。
在工厂外创建扩展名。在工厂内部初始化扩展。每个支持应用程序工厂的Flask扩展都使用此模式。
perm = Perm()
def create_app():
app = Flask(__name__)
perm.init_app(app)
return app
现在,您可以在需要访问的任何地方使用
from myproject import perm
。10-08 20:23