[Django Rest Framework] Pagination 페이징 처리

DRF Pagination

Donnis Dev-note
3 min readMar 18, 2020
  • 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

전역 설정

settings.py 내 지정해주면 됩니다.

 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 를 의미합니다.

--

--

Donnis Dev-note
Donnis Dev-note

No responses yet