TIL day-57 drf

yo·2020년 8월 16일
1

@api_view : 함수 기반 뷰에서 사용

APIView : 클래스 기반 뷰에서 사용

함수형 뷰 예시

클래스 형 뷰의 장점

클래스형 뷰는 IF문이 없어 깔끔한 코드 생산이 가능하다.

다중 상속 등 객체지향기술(OOP)을 통한 코드 재사용성 UP'

다중상속은 믹스인(Mixin) 클래스를 통해 이루어진다.

믹스인을 사용해 클래스를 레고처럼 이리저리 조합할 수 있다.

함수 뷰와는 다르게 클래스 뷰에서는 데코레이터가 없는 대신, APIView를 상속받는다.

urls.py를 적절하게 수정해야 한다.

url(r'^snippets/$', views.SnippetList.as_view()),
urls.py는 클래스가 아니라 함수에 요청을 전달한다.

따라서, 클래스를 사용하고자 하면 as_view()를 사용한다.

as_view()는 클래스의 인스턴스를 생성하는 역할을 한다.

동시에 dispatch() 메소드까지 호출한다.

dispatch() 메소드는 요청(request)을 검사한다.

해당 이름을 갖는 메소드로 요청을 중개한다.

해당 메소드가 정의되어 있지 않으면, HttpResponseNotAllowd 예외를 발생시킨다

Mixin사용

Generic 기반 뷰

출처: https://whatisthenext.tistory.com/126

profile
Never stop asking why

0개의 댓글