파이썬 웹프로그래밍 - 블로그 애플리케이션 만들기

채연·2024년 5월 10일
0

study

목록 보기
3/12
post-thumbnail

스터디 목표

블로그 애플리케이션 코드를 작성한다.

(1) 블로그 데이터 모델 만들기

  • 모델에 대한 데이터베이스 마이그레이션을 만든다.
  • 블로그 게시물(Post)을 데이터베이스에 저장할 수 있는 Post 모델을 정의한다.
  • Post 모델에 다른 datetime 필드들을 추가한다.
  • 기본 정렬 순서를 정의한다.
  • publish 필드로 데이터베이스 인덱스를 정의한다.
  • 게시물을 임시로 저장하는 기능을 추가한다.
  • 어떤 사용자가 어떤 게시물을 작성했는지를 나타내는 사용자와 게시물 간의 관계를 생성한다.

(2) 애플리케이션 활성화하기

  • 장고가 애플리케이션을 추적하고 해당 모델에 대해 데이터베이스 테이블을 생성할 수 있도록 하려면 프로젝트에서 blog 애플리케이션을 활성화해야 한다.

(3) 마이그레이션 생성 및 적용하기

  • 블로그 게시물에 대한 데이터 모델이 있으므로 해당 데이터베이스 테이블을 만들어야 한다. 프로젝트 루트 디렉터리의 Terminal에서 다음 명령을 실행한다.
python manage.py makemigrations blog
  • 다음 명령을 실행해서 첫 번째 마이그레이션의 SQL 출력을 살펴본다.
python manage.py sqlmigrate blog 0001
  • 다음 명령을 실행해서 기존 마이그레이션을 적용한다.
python manage.py migrate

(4) 모델용 관리 사이트 만들기

  • 관리 사이트를 관리할 사용자를 생성한다.
python manage.py createsuperuser
  • 원하는 사용자 이름, 이메일 및 패스워드를 입력하여 관리용 사용자를 생성한다.

(5) 관리 사이트에 모델 추가하기

  • 블로그 모델을 관리 사이트에 추가하고 커스터마이징을 한다.

(6) 모델 관리자 생성하기

  • 모든 모델의 기본 관리자는 objects 관리자이다.
  • 관리자는 데이터베이스의 모든 객체를 조회하지만 모델에 커스텀 관리자를 정의할 수도 있다.
  • PUBLISHED 상태의 모든 게시물을 조회하는 커스텀 관리자를 만든다.

(7) 목록과 상세 뷰 만들기

  • 게시물의 목록을 보여주는 뷰를 만든다.

(8) get_object_or_404 숏컷 함수 사용하기

  • 장고는 주어진 모델 관리자에서 get()을 호출하는 숏컷 함수를 제공하는데, 이 함수는 객체가 발견되지 않을 경우 DoesNotExist 예외 대신 Http404 에외를 발생시킨다.

(9) 뷰에 맞는 URL 패턴 추가하기

  • URL 패턴을 사용해서 URL을 뷰에 매핑할 수 있다.

(10) 게시물 목록 템플릿 만들기

  • post/list.html 파일을 편집해서 {% extends %} 템플릿 태그를 사용하면 장고가 blog/base.html 템플릿을 상속받도록 지시할 수 있다.

(11) 게시물 상세 템플릿 만들기

  • post/detail.html 파일을 작성 후 브라우저로 돌아가면 게시물 제목 중 하나를 클릭해서 게시물의 상세 뷰를 볼 수 있다.

0개의 댓글