페이징 처리 (Pagination)

guava·2022년 1월 16일
0

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 강의를 듣고 정리한 글입니다.

1. DRF에서 기본 지원하는 페이징 방식

1.1. DRF에서 기본 지원하는 페이지 방식

  • PageNumberPagination
    • page/page_size 인자를 통한 페이징 처리
  • LimitOffsetPagination
    • offset/limit 인자를 통한 페이징 처리

1.2. PageNumberPagination

page_size 미지정 상황을 위해, 디폴트 지정이 필요

  • settings.py 내 REST_FRAMEWORK = {"PAGE_SIZE": 10} 를 통해 전역 설정
  • PageNumberPagination을 상속받아 page_size 설정
from rest_framework.pagination	import PageNumberPagination

class MyPageNumberPagination(PageNumberPagination):
    page_size	=	10

class APIViewWithPage(APIView):
    pagination_class=	PageNumberPagination

1.3. LimitOffsetPagination

limit 미지정 상황을 위해, 디폴트 지정이 필요

  • settings.py 내 REST_FRAMEWORK = { "PAGE_SIZE": 10 } 를 통해 전역 설정
  • LimitOffsetPagination을 상속받아 default_limit 설정하고,
from rest_framework.pagination	import LimitOffsetPagination

class MyLimitOffsetPagination(LimitOffsetPagination):
    page_size	=	10

class APIViewWithLimit(APIView):
    pagination_class	=	LimitOffsetPagination

2. 전역 설정

REST_FRAMEWORK	=	{
     'PAGE_SIZE':	10,
     'DEFAULT_PAGINATION_CLASS':	'rest_framework.pagination.PageNumberPagination',
}

0개의 댓글