可插拔视图需要Flask安全角色

2024-09-29 21:26:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图要求一个角色来访问我定义为MethodView的视图。然而,我似乎无法正确命名路线。在

如果我只需要登录到一个装饰师那里,一切正常:

activities = Blueprint("activities", __name__, url_prefix="/activities")

class ActivitiesView(MethodView):
    def get():
        pass

    def post():
        pass

view = login_required(ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)

我得到所需的路由名,即activities.activities

^{pr2}$

但是,当我尝试使用roles_required时,路由的名称被损坏,POST方法不再列出:

view = roles_required("experimenter", ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)

>>> current_app.url_map
Map([...
 <Rule '/activities/' (HEAD, OPTIONS, GET) -> activities.wrapper>,
...])

把参数转换成cd4{t}不会改变任何东西。如何使用roles_required而不弄乱路由名称?在

执行此操作可修复路由名称,但不会修复缺少的POST方法:

view = roles_required("experimenter", endpoint="activities", ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)

Tags: 名称viewaddurl路由defasrequired

热门问题