我想使用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()方法。但是文档中说安全对象需要一个DataStore对象,该对象需要用户和角色模型。在app.py中导入用户和角色模型是不合适的,因为到目前为止还没有其他扩展需要这样做。
在使用'large Flask app‘模型时,使用Flask-Security的最佳实践是什么?我不觉得文档有什么帮助。当所有对象都定义在一个地方时,这是一个简单的情况。
发布于 2017-03-07 14:14:25
下面是我所拥有的。
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)https://stackoverflow.com/questions/41967145
复制相似问题