Django Academy · Lekcja

all(), get() i filter()

Poznać podstawowe sposoby pobierania obiektów

Lekcja 1 z 413 kroki

all(), get() i filter() to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Poznaj menedżera

Każdy model udostępnia bezpłatny menedżer objects. To punkt dostępu do bazy danych — każde zapytanie zaczyna się właśnie od niego. 🚪

Book.objects

Pobierz wszystko

Wywołaj all(), aby pobrać wszystkie wiersze z tabeli. Otrzymasz QuerySet, po którym możesz iterować, zliczać jego elementy lub dalej go zawężać.

books = Book.objects.all()

QuerySet to nie lista

QuerySet przypomina listę, ale działa leniwie. Django czeka z odwołaniem do bazy danych aż do chwili, gdy rzeczywiście użyjesz wyników.

Pobierz dokładnie jeden

Użyj get(), gdy oczekujesz jednego pasującego wiersza, na przykład rekordu znalezionego na podstawie klucza głównego.

book = Book.objects.get(pk=1)

Gdy get() kończy się błędem

get() działa rygorystycznie. Jeśli nic nie pasuje, zgłasza DoesNotExist, dlatego używaj go tylko wtedy, gdy masz pewność, że istnieje dokładnie jeden wiersz.

Book.objects.get(pk=999)

Zbyt wiele dopasowań

Jeśli get() znajdzie więcej niż jeden wiersz, zgłasza MultipleObjectsReturned. Ta metoda rzeczywiście wymaga jednego i tylko jednego wyniku.

Filtruj podzbiór

Użyj filter(), gdy chcesz pobrać wiersze spełniające warunek. Zwraca on QuerySet, nawet jeśli pasuje tylko jeden wiersz.

Book.objects.filter(published=True)

filter() zwraca zero lub więcej wyników

W przeciwieństwie do get(), filter() nigdy nie zgłasza błędu, gdy nic nie pasuje. Zamiast tego otrzymujesz pusty QuerySet.

Book.objects.filter(author="Nobody")

Wiele warunków

Przekaż kilka argumentów nazwanych do filter(), a Django połączy je operatorem AND. Każdy warunek musi być spełniony.

Book.objects.filter(published=True, year=2024)

get i filter — szybkie porównanie

Użyj get() dla jednego gwarantowanego obiektu, a filter() dla kolekcji. Ten prosty wybór pozwala uniknąć większości błędów początkujących w zapytaniach.

Łącz filtry

Ponieważ filter() zwraca QuerySet, możesz łączyć wywołania, krok po kroku zawężając wyniki, zanim baza danych zostanie odpy­tana.

Book.objects.filter(published=True).filter(year=2024)

Szybkie sprawdzenie

Oczekujesz jednej książki, ale nie ma dopasowania. Które wywołanie zgłosi błąd?

Podsumowanie

Świetna praca! all() pobiera wszystko, get() pobiera jeden dokładnie określony wiersz, a filter() zwraca podzbiór, który można dalej łączyć. 🎉

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „all(), get() i filter()” jest bezpłatna?

Tak — pełny tekst „all(), get() i filter()” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „all(), get() i filter()”?

Poznać podstawowe sposoby pobierania obiektów Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „all(), get() i filter()”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. all(), get() i filter()
  2. Wyszukiwanie po polach i exclude()
  3. order_by, wycinanie i leniwa ewaluacja
  4. values, values_list i count
← Powrót do Django Academy