Django로 pagination 구현
pagination 기능은 유저들이 포스트 목록을 보기 좋게 일정 숫자 만큼 나눠서 보여주는 기능이다. 다음 포스트 목록을 보려면 다음 페이지로 넘어가는 버튼을 눌러야 한다.
이 기능은 웹 사이트의 효율에도 영향을 미치는데 만약 한 페이지에 포스트 목록을 100개가 넘어가도록 보여준다면 불러 오느라 소모된 시간, 불필요한 데이터 소모 등의 문제로 유저 입장에서는 페이지 로딩 시간이 길어지게 되고, 서버 입장에서는 불러올 필요가 없는 데이터로 인한 부하가 일어나게 될 것이다.
그렇기에 유저를 위하든 서버를 위하든 pagination 기능은 필요하다. 이 기능 구현을 Django가 간편하게 구현할 수 있도록 관련 기능을 제공해 준다.
views.py에 관련 코드를 추가해 준다. 한 페이지에 5개씩 보여준다는 뜻이다.
다음은 post_list.html 파일을 수정한다.
최상단의 {% if is_paginated %}는 5개 미만의 포스트 개수 일 시 paginated가 필요없기 때문이다.
{% if page_obj.has_next %}는 다음 페이지에 있는지 여부에 따라 다음 버튼을 활성화 할지 비활성화 할지를 결정한다.
{% if page_obj.has_next %}는 그 반대의 경우로 대부분 첫번째 페이지에서는 이전 페이지가 없으므로 이전 버튼을 비활성화 시키는 경우로 쓰인다.
뭔가 이상하게 되었다. 오타를 바로잡아 준다.
'Backend > Django + Bootstrap 개발 일지' 카테고리의 다른 글
30. 검색 기능 구현 (0) | 2022.09.19 |
---|---|
29. 사용자 아바타 구현 (0) | 2022.09.15 |
27. 폼으로 댓글 기능 구현(댓글 수정, 삭제 기능 구현) (0) | 2022.09.09 |
26. 폼으로 댓글 기능 구현(댓글 작성 폼 구현) (0) | 2022.09.03 |
25. 폼으로 댓글 기능 구현(Comment 모델, 상세 페이지에 댓글 기능 반영) (0) | 2022.08.30 |