행 만들기
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입니다.
챌린지
쉬움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 플레이그라운드