Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- S3
- 파이썬
- docker
- MongoDB
- Props
- Class
- flask
- lambda
- SAA
- NeXT
- RDS
- async
- TypeScript
- EC2
- react
- 카톡
- SSA
- 채팅
- Vue
- git
- crud
- wetube
- 튜플
- pandas
- dict
- AWS
- node
- socket io
- merge
- 중급파이썬
Archives
- Today
- Total
초보 개발자
pagenation 1 본문
방들을 쫙 나열하는 것 보다, 한 페이지에 10개씩 보여주는 것이 좋다. 그러기 위해선 페이지네이션을 만들어야 한다.
먼저 django에서 제공하는 페이지네이션을 사용하기전에 수동으로 만들어 어떤 로직으로 만들어 지는지 알아보자

먼저 page_num은 ?page=1 이런식으로 url에 담겨오는 정보를 받아오는 것이다.
만약 이 정보가 공백 이거나 /?page= 혹은 빈값이라면 / 1이 담기도록 int( or 1) 을 적어준 것이다.
page_size는 10개씩 보여주기 위함이고, limit은 페이지에 따라 다음 정보를 보여주기 위함이다. offset은 limit에서 10을 뺀 값이다.
rooms를 보면 page_num의 값에 따라 다른 limit값과 offset값이 들어가는 것을 확인할 수 있다.
page_cnt는 all_rooms를 사용하여 전체 페이지 수를 나타낼 수 있다.
이러한 정보를 다 context에 담아서 보내주면

여기서 받아온다.

위와 같이 나타나는데, 만약 1이라면 previous가 보이지 않도록 if문을 달았고 반대로 마지막 페이지라면 next가 보이지 않도록 하였다. 그리고 a태그에 1을 더하거나 1을 빼주는 걸 넣어주었는데 이건 django template tag이다. 여러 가지가 있지만 여기선 add를 사용하여 더하고 빼주는 것을 사용해서 서버로 -1,+1의 값을 전송해주는 역할을 하였다.
다음에는 django에서 제공하는 기능을 사용하여 좀 더 쉽게 작성해보자.
'Python > airbnb 클론' 카테고리의 다른 글
| listview (0) | 2022.02.06 |
|---|---|
| pagenation 2 (0) | 2022.02.06 |
| extend base.html, include (0) | 2022.02.05 |
| url, views (1) | 2022.02.05 |
| django-seed (1) | 2022.02.04 |