Django Pagination

서재환·2022년 10월 28일
0

Django

목록 보기
37/40

Pagination

보내주려는 데이터가 있다면 이를 쪼개서 제공한다.

Class Paginator

  • pagination과 관련된 모든 메서드는 Paginator 클래스를 사용한다.
  • queryset을 쪼개서 Page 객체로 반환한다.

주목

Paginator(self, object_list, per_page, ...)

  • object_list --> list/tuple/Queryset
  • per_page --> 페이지 당 표시하려는 객체 수
  • 객체 수 를 파악하고자 할 때 count() -> len() 메서드 순으로 객체를 계산한다.
class Paginator:

    def __init__(self, object_list, per_page, orphans=0,
                 allow_empty_first_page=True):
        self.object_list = object_list
        self._check_object_list_is_ordered()
        self.per_page = int(per_page)
        self.orphans = int(orphans)
        self.allow_empty_first_page = allow_empty_first_page
        
        ...

Paginating a ListView

  • ListView 상속 받을 시 내장으로 pagination 기능이 있어 paginate_by 변수에 한 페이지에 표시할 수 를 기입만 해주며 된다.

Pagination

  • 페이지 별로 쪼갠 데이터를 전달하는 기능
  • response headersContent-Range 와 Link 를 제공하는 기능
  • generic views 와 viewsets 을 사용 할 경우 Pagination 을 추가 할 필요 없이 사용할 수 있다.

PageNumberPagination

  • page: 몇번째 페이지인지 표시. 1부터 시작
  • page_size: 한 페이지에 몇개의 레코드를 보여줄지 표시

LimitOffsetPagination

  • offset: 몇번 째 레코드부터 보여줄 지 설정. 설정하지 않으면 첫 번째 레보드 부터 보여줍니다.
  • limit 몇개의 레코드를 보여줄 지 설정
  • offset 번째 레코드부터 offset+limit-1 번째까지 보여줍니다.

출처

Pagination
Pagination
Pagination

0개의 댓글