본문 바로가기
기록/TIL

[TIL] 231108 - 데브코스 24일차

by 투말치 2023. 11. 8.

목차

    반응형

    새로 알게 된 것

    DRF에서 제공하는 Pagination

     

    settings.py에서 간단하게 설정할 수 있다. settings.py에서 설정하면 전체적으로 적용된다.

    view 별로 설정할 수도 있다.

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

     

    DRF에서 제공하는 페이지네이션 중 PageNumberPagination을 사용했다. page_size를 10으로 지정해 한 요청 당 10개의 데이터를 반환하게 했다.

     

    PageNumberPagination은 페이지 번호를 사용하여 결과를 페이지 별로 표시한다.

    GET https://api.example.org/accounts/?page=4

     

    다른 종류로는 LimitOffsetPagination이 있다.

    limit과 offset 파라미터를 사용해 여러 레코드를 조회할 수 있다.

    limit은 반환할 최대 항목 수로 위의 page_size와 동일하다. offset은 페이징되지 않은 전체 항목에 대해 쿼리의 시작 위치를 나타낸다.

    GET https://api.example.org/accounts/?limit=100&offset=400

     

    offset을 3으로 했을 때 다음과 같이 결과가 나온다. 그러면 offset 4로 했을 때는 id가 482인 항목이 제일 처음으로 와야 한다.

     

    offset을 4로 했을 때 잘 나오는 것을 확인할 수 있다.

     

     

     

    https://www.django-rest-framework.org/api-guide/pagination/

     

    Pagination - Django REST framework

    pagination.py Django provides a few classes that help you manage paginated data – that is, data that’s split across several pages, with “Previous/Next” links. — Django documentation REST framework includes support for customizable pagination styl

    www.django-rest-framework.org

     

     

    반응형

    '기록 > TIL' 카테고리의 다른 글

    [TIL] 231110 - 데브코스 26일차  (0) 2023.11.10
    [TIL] 231109 - 데브코스 25일차  (0) 2023.11.09
    [TIL] 231107 - 데브코스 23일차  (5) 2023.11.07
    [TIL] 231102 - 데브코스 18일차  (0) 2023.11.02
    [TIL] 231101 - 데브코스 17일차  (1) 2023.11.01