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
- crud
- dict
- socket io
- S3
- 튜플
- Class
- 카톡
- wetube
- TypeScript
- 채팅
- Vue
- SAA
- SSA
- git
- 중급파이썬
- lambda
- docker
- flask
- RDS
- merge
- 파이썬
- NeXT
- react
- MongoDB
- EC2
- Props
- node
- pandas
- async
- AWS
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 (0) | 2022.02.05 |
django-seed (0) | 2022.02.04 |