Menu
CoddyTech

행 개수 세기

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으로 가져온 뒤에만 가능합니다. 큰 테이블에서는 느립니다.

challenge icon

챌린지

쉬움

explore.py를 다시 작성하여 두 줄을 출력하세요.

  1. Science fiction:과 공상 과학 책이 몇 권 있는지 출력하세요.
  2. Any Tolkien:과 J.R.R. Tolkien의 책이 책장에 있는지 출력하세요.

실행을 누르세요. 콘솔에 Science fiction: 3과 Any Tolkien: True가 표시됩니다.

직접 해보기

from books.models import Book

# 1. 공상 과학: 공상 과학 책이 몇 권 있는지

# 2. 톨킨의 책: J.R.R. Tolkien이 쓴 책이 책장에 있는지
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

모델과 관리자의 모든 레슨

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