[Flask] MethodView
Django View와 같은 클래스 기반 Pluggable View MethodView
HTTP 메서드와 동일한 이름의 클래스 메소드에 매핑된다.
from flask.views import MethodView
class TestView(MethodView):
def post(self):
pass
def get(self):
pass
app.add_url_rule('/test', view_func=TestView.as_view('test'))
URL Route
class TestView(MethodView):
def post(self):
pass
def get(self, test_id):
if test_id is None:
pass
else:
pass
def patch(self):
pass
def delete(self, test_id):
pass
test_view = TestView.as_view('test')
app.add_url_rule('/test', view_func=test_view, methods=['POST', 'PATCH'])
app.add_url_rule('/test', defaults={'test_id':None}, view_func=test_view, mehtods=['GET'])
app.add_url_rule('/test/<int:test_id>', view_func=test_view, methods=['GET', 'DELETE'])
path parameter가 있거나 여러 메소드가 있는 경우 위와 같이 규칙을 정의한다.
데코레이터
class TestView(MethodView):
decorators = [decorator]
클래스 선언 후 데코레이터 리스트를 지정해주면 하위에 정의된 모든 메소드에 데코레이터가 적용된다.
개별 메소드에서 데코레이터가 필요한 경우 메소드 위에 데코레이터를 달아준다.
class TestView(MethodView):
@decorator
def get(self):
pass
Author And Source
이 문제에 관하여([Flask] MethodView), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ggg9_/Flask-MethodView저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)