values, values_list i count
Pobierać lekkie dane i wartości zagregowane
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. 📊
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
- all(), get() i filter()
- Wyszukiwanie po polach i exclude()
- order_by, wycinanie i leniwa ewaluacja
- values, values_list i count