지금은 페이지에 글 제목, 내용 등이 다 보이죠? 하지만 보통 게시판들은 글 제목을 눌러 상세페이지로 갑니다. 그래서 저희도 웹/앱의 필수적인 기능인 CRUD(Create, Read, Update, Delete) 중 Read를 구현해볼 겁니다.

자, 여기서 잠깐 정리를 해봅시다. 우리의 모든 게시글은 detail페이지를 필요로 합니다.

그렇다면 글 제목을 클릭했을 때 각각의 상세페이지가 떠야하는데.... 그럼 우리가 등록한 게시글 수 만큼 detail페이지가 필요하게 됩니다. 1번 게시글을 클릭했을 땐 1번 게시글의 상세페이지로, 2번 게시글을 클릭했을 땐 2번 게시글의 상세페이지로 이동해야 하기 때문입니다.

그러다 만약 게시글이 100개가 되면 어쩌죠? 아. 100개 정도는 만들 수 있다구요?

그럼 만약 7821025992개의 게시글이 등록된다면요? ( ... )

물론 엄청난 시간과 노력을 들여 해결할 수도 있겠지만, 우리 그런 짓은 하지 않도록 하겠습니다.

고유한 값?

그럼 어떻게 상세 페이지를 구현할까요? 게시글마다 어떤 고유한 값이 있다면 좋을텐데 말이죠...

사실 Django에서는 표의 모든 데이터에 고유한 ID를 부여하고 있습니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/014a7ade-168a-4adf-ae9f-1c6aeaba3f47/Untitled.png

이렇게 말이죠. 저희가 따로 정의를 하지않아도 사실 id라는 열이 생성되어 숨겨져있습니다. 그럼 한번 확인해볼까요? 이전에 만든 posts.html에 한 줄을 추가해줍시다.

{% for row in post_list %}
    <div>
        고유한 ID : {{row.id}}<br>
        제목 : {{row.title}}<br>
        내용 : {{row.body}}<br>
        작성시간 : {{row.pub_date}}<br>
    </div>
    <br>
    {%endfor%}

그럼 이제 각 글들을 구분할 수 있는 방법을 알았으니 이제 어떻게 할 지 생각해봅시다.

웹은