본문 바로가기

Python/Django

장고 걸즈 튜토리얼 따라하기 13 - 어플리케이션 확장

장고 걸즈 튜토리얼 따라하기 13 - 어플리케이션 확장

Post에 템플릿 링크 만들기

blog/templates/blog/post_list.html 파일에 아래와 같이 링크를 추가한다.

{% url 'post_detail' pk=post.pk %}을 설명하면,

  • {% %}는 장고 템플릿 태그를 말한다.
  • post_detailblog.views.post_detail의 뷰 경로이다.
  • pk=post.pk이란 pk는 데이터베이스의 각 레코드를 식별하는 기본키(Primary Key)의 줄임말인데, Post 모델에서 기본키를 지정하기 않았기 때문에 장고는 pk라는 필드를 추가해서 새로운 게시물이 추가될 때 마다 그 값이 1, 2, 3 등으로 증가하게 된다. post.pk를 써서 기본키에 접근할 수 있고 Post 객체 내 다른 필드에도 접근할 수 있다.

 

Post 상세 페이지 URL 만들기

blog/urls.py 파일에 URL을 만들어, 장고가 post_detail 뷰로 보내, 게시글이 보이게끔 아래와 같이 blog/urls.py 파일에 URL을 추가한다.

(?P<pk>\d+)는 장고가 pk 변수에 모든 값을 넣어 뷰로 전송하겠다는 뜻이다. \d는 문자를 제외한 숫자 0~9 중, 한 가지 숫자만 올 수 있다는 것을 의미한다. +는 그 이상의 숫자가 올 수 있다는 뜻이다.

 

Post 상세 페이지 내 뷰 추가하기

blog/views.py에 아래 코드를 추가하고 뷰를 하나 아래와 같이 작성한다.

get_object_or_404는 만약 pk에 해당하는 Post가 없을 경우에는 404 에러를 보여주고, 있을 경우에는 그 pk에 해당하는 Postpost 변수에 저장하게 된다.

 

Post 상세 페이지 템플릿 만들기

blog/templates/blog 디렉토리 안에 post_detail.html이라는 새 파일을 생성하고 아래와 같이 코드를 작성한다.

이제 서버를 실행시키고 블로그 게시글의 상세 페이지를 확인해본다.

post_detail_page

 

배포

다시 한번 Gtihub로 업로드한다.

그 다음 PythonAnywhere Bash Console을 열고 아래와 같이 입력하고 Web tab에서 Reload를 누른다.