행 개수 세기
Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 10번째.
자신이 과학 소설 책을 몇 권 가지고 있는지 말하려면, 책을 모두 불러와 Python으로 셀 수 있습니다. 데이터베이스가 더 빠르게 셉니다. 다음은 각각 작은 쿼리 하나를 실행하고 답 하나를 반환합니다:
Book.objects.filter(is_read=True).count() # 1
Book.objects.filter(price__gt=20).exists() # False
len(Book.objects.all()) # 9, 9개 행을 모두 불러온 후count()는 일치하는 행이 몇 개인지 반환합니다. exists()는 True 또는 False로 답합니다. 하나라도 있을까요? 두 메서드 모두 filter() 또는 exclude() 뒤에 QuerySet의 끝에 붙입니다. len()은 count()와 같은 숫자를 반환하지만, 모든 행을 Python으로 가져온 뒤에만 가능합니다. 큰 테이블에서는 느립니다.
챌린지
쉬움explore.py를 다시 작성하여 두 줄을 출력하세요.
Science fiction:과 공상 과학 책이 몇 권 있는지 출력하세요.Any Tolkien:과J.R.R. Tolkien의 책이 책장에 있는지 출력하세요.
실행을 누르세요. 콘솔에 Science fiction: 3과 Any Tolkien: True가 표시됩니다.
직접 해보기
from books.models import Book
# 1. 공상 과학: 공상 과학 책이 몇 권 있는지
# 2. 톨킨의 책: J.R.R. Tolkien이 쓴 책이 책장에 있는지
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
모델과 관리자의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드