如何在没有修饰符的情况下继承flask MethodView类?

2024-09-28 13:29:58 发布

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

因为没有重写相同的API。我想从已经创建的MethodView继承get方法,并忽略login_required装饰器。在

class DoStuffA(MethodView):
    decorators = [login_required]
    def get(self):
        return jsonify({"status":"ok"})

api.add_url_rule('/dostufa', view_func=DoStuffA.as_view("dostuffa"), methods=['GET'])

class DoStuffB(DoStuffA):
    pass

api.add_url_rule('/dostuffb', view_func=DoStuffB.as_view("dostuffb"), methods=['GET'])

如果我对/dostuffb执行GET请求

  1. 需要认证吗?

  2. 我的继承语法正确吗?


Tags: viewaddapiurlgetasrequiredlogin
1条回答
网友
1楼 · 发布于 2024-09-28 13:29:58

只有在调用View.as_view()方法时,View.decorators列表才会应用。如果不希望在子类中应用任何修饰符,只需使用空序列覆盖该属性:

class DoStuffB(DoStuffA):
    decorators = ()  # empty tuple

现在DoStuffB.as_view()将找到空元组,而不是继承的DoStuffA.decorators列表,并且不应用修饰符。在

相关问题 更多 >

    热门问题