Flask-Admin +(Flask-Login和/或Flask-Principal)

Sea*_*ean 10 python import plugins flask

可以通过Flask-LoginFlask-Principal插件将身份验证和授权集成到Flask中.(或者也可能通过Flask-Security插件.)

但是:Flask-Admin - 另一个提供后端仪表板的插件 - 不是注册的蓝图......而且,我相信(据我所知),Flask-Login和Flask-Principal使用的装饰器 - 和这是用户访问渲染视图所必需的...那些装饰器仅对作为已注册蓝图一部分的视图进行操作.

两个问题:

1)如何在我的应用程序中注册Flask-Admin作为蓝图,和/或启用Flask-Login和/或Flask-Principal装饰器来保护与Flask-Admin相关的视图?

2)为什么Flask-Login和Flask-Principal仅适用于我的应用程序"本机"部分的对象...而不是从插件导入的对象(例如"Admin"对象)?我怎样才能解决这个问题...如果我确实正确地理解它?

我认为这是一个问题,因为我为我的应用程序的主索引页面创建受保护的视图,或者任何其他具有蓝图内部视图的页面都没有任何问题.我似乎无法为Flask-Admin索引页面执行此操作(同样,它没有蓝图).

Sea*_*ira 11

烧瓶管理员提供提供身份验证的另一种方式-您只需子类AdminIndexBaseIndex(或从视图的观点contrib,如果你只需要那些)和实施is_accessible方法.有关详细信息,请参阅文档.存储库中还提供了一个示例.