gpt4 book ai didi

flask-security:如何在蓝图/扩展应用程序模式中使用?

转载 作者:行者123 更新时间:2023-12-03 15:45:19 30 4
gpt4 key购买 nike

我想使用flask-security。
我正在使用模板 flask 应用程序,该应用程序创建扩展的全局对象,然后在创建应用程序时对其进行初始化。
例如在extensions.py中,有如下代码:

from flask_bcrypt import Bcrypt
from flask_caching import Cache ...
from flask_security import Security ...
bcrypt = Bcrypt() ...
security = Security()

然后在 app.py中调用 register_extensions(app),该调用使用像这样的 init_app(app)方法:
bcrypt.init_app(app)
security.init_app(app)

实际上,flask-security具有 init_app()方法。但是文档说安全对象需要一个数据存储对象,该对象需要用户和角色模型。到目前为止,没有其他扩展程序需要将用户和角色模型导入app.py中是不合适的。

使用“大型Flask应用程序”模型时,使用Flask-Security的最佳实践是什么?我认为文档没有帮助。当所有对象都定义在一个地方时,这是一种简单的情况。

最佳答案

以下是我所拥有的。

extensions.py

from flask_sqlalchemy import SQLAlchemy
from flask_security import Security


db = SQLAlchemy()
security = Security()

__init__.py
from .extensions import db, security
from .models import User, Role

def create_app(config_name):
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security.init_app(app, user_datastore)

关于flask-security:如何在蓝图/扩展应用程序模式中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41967145/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com