order_by, Slicing und Lazy Evaluation
Sortieren und begrenzen Sie Abfragen und verstehen Sie, wann sie die Datenbank erreichen.
order_by, Slicing und Lazy Evaluation ist eine kostenlose Django Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Django Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Put Rows in Order
Database rows have no guaranteed order. Call order_by() to sort a QuerySet by any field you choose.
Book.objects.order_by("title")Sort Descending
Put a minus sign in front of a field name to reverse the order, so the largest or newest value comes first.
Book.objects.order_by("-year")Sort by Several Fields
Pass multiple fields to order_by() and Django sorts by the first, then breaks ties with the next.
Book.objects.order_by("author", "-year")Take the Top Few
Slicing a QuerySet with Python syntax limits how many rows you fetch, perfect for a top-five list.
Book.objects.order_by("-year")[:5]Slice a Window
Give slicing a start and stop to grab a middle chunk. Django turns it into LIMIT and OFFSET for you. ✂️
Book.objects.all()[10:20]No Negative Slicing
You cannot use a negative index on a QuerySet. To get the last rows, reverse the order first, then slice.
Book.objects.order_by("-id")[:1]Queries Are Lazy
Building a QuerySet does not touch the database. Django stays lazy and waits until you really need the data.
qs = Book.objects.filter(published=True)What Triggers a Query
Evaluation happens when you loop, call list(), or check the length. That moment is when SQL finally runs.
for book in qs:
print(book.title)Build Now, Run Later
Laziness lets you chain filters across many lines, and Django still sends just one combined query at the end.
qs = Book.objects.filter(year__gte=2020).order_by("title")Caching the Results
Once a QuerySet is evaluated, Django caches the rows. Reusing the same variable avoids hitting the database twice.
Slicing Stays Lazy
An unevaluated slice is still lazy, so the LIMIT is added to the SQL instead of trimming rows in Python.
top = Book.objects.order_by("-year")[:3]Quick Check
You build a filtered QuerySet but never loop or list it. When does the SQL run?
Recap
You did it! order_by() sorts, slicing limits rows in SQL, and lazy evaluation means queries run only when used. ⚡
Häufig gestellte Fragen
Ist die Lektion „order_by, Slicing und Lazy Evaluation“ kostenlos?
Ja — der vollständige Text von „order_by, Slicing und Lazy Evaluation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Django Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „order_by, Slicing und Lazy Evaluation“?
Sortieren und begrenzen Sie Abfragen und verstehen Sie, wann sie die Datenbank erreichen. Du übst Django Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Django Academy zu starten?
Keine Vorkenntnisse erforderlich. Django Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „order_by, Slicing und Lazy Evaluation“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Django Academy-Lektion Code schreiben und ausführen?
Ja. Jede Django Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- all(), get() und filter()
- Feld-Lookups und exclude()
- order_by, Slicing und Lazy Evaluation
- values, values_list und count