首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flask-security:如何在blueprint/extension应用程序模式中使用?

flask-security:如何在blueprint/extension应用程序模式中使用?
EN

Stack Overflow用户
提问于 2017-02-01 04:44:19
回答 1查看 1.9K关注 0票数 9

我想使用flask-security。我正在使用一个模板flask应用程序,它为扩展创建全局对象,然后在创建应用程序时初始化它们。例如,在extensions.py中有这样的代码:

代码语言:javascript
复制
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)方法:

代码语言:javascript
复制
bcrypt.init_app(app)
security.init_app(app)

事实上,flask-security有一个init_app()方法。但是文档中说安全对象需要一个DataStore对象,该对象需要用户和角色模型。在app.py中导入用户和角色模型是不合适的,因为到目前为止还没有其他扩展需要这样做。

在使用'large Flask app‘模型时,使用Flask-Security的最佳实践是什么?我不觉得文档有什么帮助。当所有对象都定义在一个地方时,这是一个简单的情况。

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 14:14:25

下面是我所拥有的。

extensions.py

代码语言:javascript
复制
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security


db = SQLAlchemy()
security = Security()

__init__.py

代码语言:javascript
复制
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)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41967145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档