지난 수업을 이음
" 페이지네이션 "
웹서비스의 데이터가 일정 수준 이상 쌓이면
몇 개의 페이지로 나누어
이전/다음 페이지로 넘어갈 수 있도록 설정하는 것
" Paginator "
페이징 관리 클래스.
전체 데이터를 가지고 있으면서 각 페이지별 데이터를 반환해준다.
한 페이지에 몇 개의 데이터를 묶을지 지정해야 한다.
# Paginator(전체데이터, 한 페이지에 보여질 데이터수)
from django.core.paginator import Paginator
data_list = list('adfalksejrpqaodkdlkafjkjeqwormv')
print(len(data_list))
pn = Paginator(data_list, 5) # 전체데이터, 한 페이지에 보여질 데이터수
print('총데이터수', pn.count)
print('총페이지수', pn.num_pages)
print('페이지 범위', pn.page_range)
for page in pn.page_range:
print(page, end='\t')
" 페이지 데이터 조회 "
# 각 페이지에 있는 데이터 조회
# paginator.page(페이지 번호) - 번포헤이지의 데이터들을 (Page객체로) 반환
# 총 페이지가 7페이지 일 때
page1 = pn.page(1)
print(type(page1), page1) # page: 그 페이지의 데이터를 관리
print("이전 페이지 유무", page1.has_previous())
print("다음 페이지 유무", page1.has_next())
page7 = pn.page(7)
print("이전 페이지 유무-7", page7.has_previous())
print("다음 페이지 유무-7", page7.has_next())
'인문학도 개발일지 > 웹프로그래밍' 카테고리의 다른 글
[수업노트] django - 회원정보 조회 (0) | 2020.03.01 |
---|---|
[수업노트] django - 회원가입, 로그인, 로그아웃 기능 구현 (0) | 2020.02.29 |
[수업노트] django - 회원가입, 로그인 화면 구현 (0) | 2020.02.27 |
[수업노트] Bootstrap - 부트스트랩 개요 (0) | 2020.02.15 |
[수업노트] JavaScript - 자바스크립트 개요 (0) | 2020.02.13 |