Menu
CoddyTech

행 만들기

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 7번째.

책장에 새 책이 필요하지만, 데이터베이스가 사용하는 언어인 SQL은 전혀 작성하지 않아도 됩니다. 모든 모델에는 Book.objects라는 관리자(manager)가 있습니다. 관리자의 메서드는 테이블을 읽고 씁니다. Django의 ORM(객체 관계 매퍼)은 이러한 호출을 SQL로 바꿉니다. 이 장에서는 explore.py에 ORM 코드를 작성합니다. 실행하면 책 9권을 추가한 다음, python manage.py shell < explore.py를 실행한 것처럼 파일을 실행하고, 파일이 출력하는 내용이 콘솔에 표시됩니다.

Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00")

create()는 행을 만들고 한 번에 저장합니다. 생략한 필드는 기본값을 사용합니다. 중간에 변경을 거치는 두 단계 방식도 같습니다.

silmarillion = Book(title="The Silmarillion", author="J.R.R. Tolkien", year=1977, price="10.50")
silmarillion.is_read = True
silmarillion.save()

save()가 실행되기 전까지 객체는 Python 안에만 존재하며, 객체의 id는 None입니다.

challenge icon

챌린지

쉬움

explore.py에서 print 위에 책 두 권을 추가하세요.

  • create()를 사용해 다음 책을 추가하세요: Andy Weir가 쓴 Project Hail Mary, 출간 연도 2021, 가격 12.99, 장르는 공상 과학입니다. 장르의 레이블이 아니라 값인 scifi를 저장하세요. Genre 클래스에서 가져오세요.
  • Book을 만들고 save()를 호출해 다음 책을 추가하세요: Kazuo Ishiguro가 쓴 Klara and the Sun, 출간 연도 2021, 가격 11.50.

‘플레이’를 누르세요. 콘솔에 11 books on the shelf가 표시됩니다.

직접 해보기

from books.models import Book

# 여기에 책 두 권을 추가하세요.


print(Book.objects.count(), "books on the shelf")

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드