Server/django

[Django] 장고 기초 - Pagination

또잉코딩 2019. 12. 29. 23:16

Pagination - 페이지 단위로 자르기

pagination 처리 과정

1. 무슨 객체를, 한 페이지 당 몇 개씩 Pagination시킬 것인지 결정 -> Paginator(object, num)

2. 원하는 페이지 갖고 오기 -> 페이지네이터객체.get_page(갖고오고싶은 페이지번호)

3. 갖고 온 페이지 html에 띄우기 -> 페이지객체의 메소드함수 + 템플릿언어

 

cf. Paginator Class vs Page Class

Paginator Class : 자른 페이지들의 뭉텅이 ex. 1~3번 페이지

Page Class : 자른 페이지들 중 하나의 페이지 ex. 3번 페이지

최종 목적은 Page 객체를 얻는 것

 

cf. Page 객체의 메소드 함수

함수

page.count()

총 객체 수(총 블로그 글 개수)

page.num_pages()

총 페이지 개수

page.page(n)

n번째 페이지 리턴

page.page_range()

(1부터 시작하는)페이지 리스트 반환

page.get_page(n)

n번째 페이지 갖고 오기

page.has_next()

다음 페이지 있으면 True, 없으면 False

page.has_previous()

이전 페이지 있으면 True, 없으면 False

page.previous_page_number()

이전 페이지 번호 반환

 

cf. request받은 페이지 번호는 어떻게 알까?

page=request.GET.get('page') # page key값으로 하는 value(페이지번호)를 반환하여, page변수에 담아라

.get : (딕셔너리형에 대해) key값을 인자로 주면 value 반환

request.GET은 딕셔너리 자료형, 'page' key!

 

cf. 페이지를 실제로 갖고오기

paginator.get_page(page)

page변수 = request받은 페이지 번호

get_page = 그 페이지 번호를 갖고오기

 

1. views.py

from django.core.paginator import Paginator

2. show.html