[DRF] Pagination 페이징처리

Yerin·2020년 7월 12일
0
  • PageNumberPagination
    page/page_size 인자를 통한 페이징처리

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

settings.py 내 REST_FRAMEWORK = { “PAGE_SIZE” : 10 } 를 통해 전역 설정
PageNumberPagination 을 상속받아 page_size 설정

# APIView에서 page_size를 커스텀하여 지정하고싶을 때
from rest_framework.pagination import PageNumberPagination
class MyPageNumberPagination(PageNumberPagination):
   page_size = 10
class APIViewWithPage(APIView):
   pagination_class = PageNumberPagination
  • LimitOffsetPagination
    offset/limit인자를 통해 페이징 처리

limit 미지정 상황을 위해 디폴트지정이 필요.
settings.py 내 REST_FRAMEWORK = { “PAGE_SIZE” : 10 } 를 통해 전역 설정
LimitOffsetPagination 을 상속받아 page_size 설정

# APIView에서 page_size를 커스텀하여 지정하고싶을 때
from rest_framework.pagination import LimitOffsetPagination
class MyLimitOffsetPagination(LimitOffsetPagination):
   page_size = 10
class APIViewWithPage(APIView):
   pagination_class = LimitOffsetPagination
  • 전역 설정
 REST_FRAMEWORK = {
      'PAGE_SIZE' : 10,
      'DEFAULT_PAGINATION_CLASS' :               'rest_framework.pagination.PageNumberPagination',   
}

localhost:8000/post/?page=1 , 2 … 이렇게 url를 통해 페이지 이동이 가능합니다.
API 서버에서 count 는 총 갯수, next 는 다음 페이지 url, previous는이전 페이지 url 를 의미합니다.

참고:공식문서

profile
졸꾸 !!!

0개의 댓글