Django Academy · Lekcja

values, values_list i count

Pobierać lekkie dane i wartości zagregowane

Lekcja 4 z 413 kroki

values, values_list i count to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 4 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.

Dlaczego warto używać lżejszych rozwiązań

Pełne obiekty modeli zawierają każde pole. Gdy potrzebujesz tylko jednej lub dwóch kolumn, lżejsze narzędzia pobierają mniej danych i działają szybciej.

values() zwraca słowniki

Wywołaj values(), a każdy wiersz zostanie zwrócony jako słownik zamiast instancji modelu. To przydatne w przypadku JSON-a i szybkiego odczytu.

Book.objects.values("title", "year")

Wybieraj tylko potrzebne dane

Podaj pola jako argumenty values(), a Django wybierze tylko odpowiadające im kolumny, dzięki czemu każdy słownik będzie mały i przejrzysty.

Book.objects.values("title")

values_list() zwraca krotki

Wolisz krotki? values_list() zwraca każdy wiersz jako krotkę wartości w kolejności, w której podano pola.

Book.objects.values_list("title", "year")

Spłaszczanie pojedynczej kolumny

Potrzebujesz jednego pola? Dodaj flat=True, aby otrzymać zwykłą listę wartości zamiast krotek jednoelementowych.

Book.objects.values_list("title", flat=True)

flat wymaga jednego pola

Pamiętaj, że flat=True działa tylko z jednym polem. Przekazanie dwóch pól powoduje zgłoszenie błędu przez Django, aby uniknąć niejasności.

To nadal są QuerySet

Zarówno values(), jak i values_list() pozostają leniwyми QuerySet, więc możesz je filtrować i porządkować przed ich wykonaniem.

Book.objects.filter(published=True).values("title")

Zliczanie bez ładowania

Potrzebujesz tylko liczby? count() zleca bazie danych bezpośrednie zliczenie wierszy, co jest znacznie tańsze niż pobieranie ich wszystkich do Pythona.

Book.objects.filter(published=True).count()

count a len

Użyj count(), gdy potrzebujesz tylko liczby. Wywołanie len() najpierw ładuje każdy obiekt, a dopiero potem zlicza je w pamięci.

Czy coś pasuje

Aby sprawdzić, czy istnieją wiersze, exists() jest lepsze niż count(). Kończy działanie po znalezieniu pierwszego dopasowania i zwraca prostą wartość True lub False.

Book.objects.filter(year=2024).exists()

Łączenie dla przejrzystych odczytów

Łącz te metody bez obaw: użyj filter do zawężenia wyników, a następnie values_list dla uporządkowanej listy albo count do uzyskania liczby. Każde zapytanie pozostaje lekkie.

Book.objects.filter(published=True).values_list("id", flat=True)

Szybkie sprawdzenie

Chcesz zwykłą listę wszystkich tytułów książek, a nie krotki ani słowniki. Czego użyjesz?

Podsumowanie

Świetnie! values() zwraca słowniki, values_list() zwraca krotki, a count() zlicza wiersze w bazie danych. 📊

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 „values, values_list i count” jest bezpłatna?

Tak — pełny tekst „values, values_list i count” 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 „values, values_list i count”?

Pobierać lekkie dane i wartości zagregowane Ć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 4 z 4.

Ile czasu zajmuje lekcja „values, values_list i count”?

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