Menu
CoddyTech

Datensätze zählen

Teil des Abschnitts Modelle und Admin-Bereich der Django-Journey von Coddy. Lektion 10 von 23.

Um anzugeben, wie viele Science-Fiction-Bücher du besitzt, könntest du sie alle laden und in Python zählen. Die Datenbank zählt schneller. Jede dieser Abfragen führt eine kleine Abfrage aus und liefert eine einzelne Antwort zurück:

Book.objects.filter(is_read=True).count()    # 1
Book.objects.filter(price__gt=20).exists()   # False
len(Book.objects.all())                      # 9, nach dem Laden aller 9 Zeilen

count() gibt zurück, wie viele Zeilen übereinstimmen. exists() beantwortet die Frage mit True oder False: Gibt es mindestens eine? Beide stehen am Ende eines QuerySets, nach filter() oder exclude(). len() liefert dieselbe Anzahl wie count(), aber erst, nachdem jede Zeile in Python geladen wurde. Bei einer großen Tabelle ist das langsam.

challenge icon

Aufgabe

Einfach

Schreibe explore.py so um, dass zwei Zeilen ausgegeben werden:

  1. Science fiction: und wie viele Science-Fiction-Bücher es gibt.
  2. Any Tolkien: und ob ein Buch von J.R.R. Tolkien im Regal steht.

Drücke auf „Run“. In der Konsole steht Science fiction: 3 und Any Tolkien: True.

Probier es selbst

from books.models import Book

# 1. Science-Fiction: Wie viele Science-Fiction-Bücher es gibt

# 2. Ein Buch von Tolkien: Ob ein Buch von J.R.R. Tolkien im Regal steht
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Modelle und Admin-Bereich

Übe selbstständig: Django-Playground