728x90
generic이란 무엇인가?
- 제네릭 뷰는 장고 프레임워크에서 제공하는 재사용 가능한 View 클래스.
- 장고 프레임워크에서 제공하는 재사용 가능한 뷰(View) 클래스
- DRF의 제네릭 뷰는 장고의 제네릭 뷰와 유사한 기능을 제공하면서, Restful API 개발에 특화됨.
- 제네릭 뷰는 일반적으로 HTTP Method에 따라 다양한 동작을 수행함.
- 상속을 통해 확장할 수 있음.
- 필요한 메소드를 오버라이딩하거나 추가하여 customize할 수 있다.
- >> 기존의 제네릭 뷰를 활용하면서 특정한 동작이나 로직 추가 가능.
ListCreateView란 무엇인가?
- DRF에서 제공하는 제네릭(Generic) 뷰 중 하나
- Restful API에서 컬렉션(Collection)을 나타내는 모델의 리스트를 생성하고 조회할 수 있음
- 필요에 따라 해당 뷰 상속, 메소드 오버라이딩(사용자 정의 동작 추가)
- ex) get_queryset()메소드, perform_create()
ListCreateView의 쓰임새
GET Method
- 컬렉션의 모든 객체를 조회.
- 요청이 오면 해당 컬렉션에 대한 QuerySet 생성, 직렬화 >> 응답으로 반환
- 기본적으로 ListModelMixin을 사용
POST Method
- 컬렉션에 새로운 객체 생성
- 요청이 오면 전달된 데이터를 기반으로 새로운 객체 생성, 저장
- 이후 생성된 객체를 직렬화하여 응답으로 반환
- 기본적으로 CreateModelMixin 사용
APIView와 ListCreateAPIView의 차이
APIView
- 가장 기본적인 형태의 뷰 클래스
- 장고의 기본 뷰를 확장하여 Restful API 개발에 특화
- APIView를 상속하면 사용자가 원하는 대로 HTTP 메소드에 동작 정의
- 개발자에게 자유도가 더 크지만, 모든 동작을 직접 구현해야 함
- 일부 반복적인 작업을 직접 처리
- 모든 메소드 가능
generics.ListcreateAPIView
- 미리 정의된 기능을 활용하여 일반적인 컬렉션 조회 및 생성 작업 처리
- APIView 상속
- ListModelMixin과 CreateModelMixin을 사용하여 컬렉션 조회 및 생성 작업 구현
- 컬렉션의 조회 및 생성에 필요한 로직을 단순화할 수 있음
- 기본적인 동작 이미 구현
- 개발자는 필요한 로직만 오버라이딩하면 됨
- POST, GET에 한정
'Framework > Django' 카테고리의 다른 글
Queryset method 정리 (1) | 2023.06.20 |
---|---|
시리얼라이저 오버라이딩 (0) | 2023.06.19 |
MtoM 마이그레이션 오류(through 옵션) (0) | 2023.06.16 |
DRF Response() (0) | 2023.06.16 |
FBV 와 CBV 차이점 (0) | 2023.06.16 |