djangorestframework
-
[Django] DRF Serializer(시리얼라이저) 동작 원리파이썬/Django 2022. 1. 24. 22:44
들어가며 DRF에서 주요 클래스(ViewSet, Router, Serializer) 중 하나인 Serializer의 동작 원리를 살펴본다. Serializer의 기능은 세 가지가 있는데 다음과 같다. 모델 객체 → 파이썬 네이티브 타입인 dict 타입 객체로 직렬화 dict 타입의 데이터를 validation dict 타입 → 모델 객체로 역 직렬화 validation 기능은 주로 역 직렬화 전에 dict 타입의 데이터를 검증해주는 기능으로 사용된다. 이 Seirlaizer의 세 기능을 각각 어떻게 동작하는지 알아본다. 1. Model → dict class UserSerializer(serializers.Serializer): username = serializers.CharField() passwor..
-
[Django] RestFramework 페이지네이션 종류파이썬/Django 2021. 5. 5. 23:32
모든 DRF Pagination 추상 클래스 BasePagination을 상속 받는다. 1. PageNumberPagination page_query_param과 page_size_query_param을 사용해서 페이지네이션하는 가장 기본적인 방법 기본적으로 장고의 Paginator를 사용한다. 주어진 쿼리셋에서 [(페이지넘버 - 1) * 페이지사이즈:(페이지넘버 - 1) * 페이지사이즈 + 페이지사이즈] 를 슬라이싱하여 페이지네이션된 쿼리셋을 반환한다. 데이터를 조회할 때 select * from article limit 10 offset 20 같은 식으로 조회를 한다. 따라서 쿼리에서 limit은 페이지사이즈가 되고 offset은 (페이지넘버 -1) * 페이지사이즈 가 된다. 2. LimitOffse..