행 개수 세기
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. Tolkien의 책: J.R.R. Tolkien이 쓴 책이 책장에 있는지
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
모델과 관리자의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드