Filtrowanie, wyszukiwanie i stronicowanie
Zwiększanie użyteczności dużych odpowiedzi API
Filtrowanie, wyszukiwanie i stronicowanie 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.
Duże odpowiedzi stanowią problem
Zwracanie tysięcy wierszy w jednej odpowiedzi jest powolne i nieporęczne. DRF udostępnia filtrowanie, wyszukiwanie i stronicowanie, aby zachować użyteczność danych.
Dlaczego najpierw stronicowanie
Stronicowanie dzieli dużą listę na strony, dzięki czemu klienci pobierają za każdym razem tylko jej fragment, zamiast wszystkiego naraz.
Włączanie stronicowania
Ustaw domyślną klasę stronicowania i rozmiar strony w konfiguracji, a każdy widok listy automatycznie zacznie korzystać ze stronicowania.
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS':
'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10,
}Struktura odpowiedzi ze stronicowaniem
PageNumberPagination opakowuje wyniki w pola count oraz odnośniki next i previous, dzięki czemu klienci mogą łatwo przechodzić między stronami. 📄
Style stronicowania
Wybierz styl: PageNumberPagination używa numerów stron, natomiast LimitOffsetPagination pozwala klientom bezpośrednio określić limit i przesunięcie.
Teraz filtrowanie
Filtrowanie zawęża wyniki na podstawie dokładnych wartości pól, na przykład pozwala znaleźć tylko książki, których identyfikator autora wynosi 5.
Dodawanie DjangoFilterBackend
Zainstaluj django-filter, włącz DjangoFilterBackend i wymień pola, po których klienci mogą filtrować, w filterset_fields.
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
filterset_fields = ['author', 'published_year']Filtry jako parametry zapytania
Klienci filtrują dane za pomocą parametrów zapytania w adresie URL, więc żądanie takie jak /books/?author=5 zwróci tylko książki tego autora. 🔍
Wyszukiwanie a filtrowanie
SearchFilter wykonuje przybliżone dopasowanie tekstu w wielu polach, natomiast filtrowanie dopasowuje dokładne wartości. Wyszukiwanie służy do zapytań tekstowych.
Włączanie pól wyszukiwania
Dodaj SearchFilter i wymień kolumny, które należy przeszukiwać, w search_fields. Następnie klienci przekazują wyszukiwany tekst za pomocą parametru zapytania search.
from rest_framework.filters import SearchFilter
class BookViewSet(viewsets.ModelViewSet):
filter_backends = [SearchFilter]
search_fields = ['title', 'author__name']Sortowanie wyników
Dodaj OrderingFilter, aby klienci mogli sortować za pomocą ordering=title lub ordering=-price w kolejności malejącej — wszystko z poziomu adresu URL.
Szybkie sprawdzenie
Upewnij się, że potrafisz odróżnić te narzędzia.
Podsumowanie: użyteczne odpowiedzi API
Można już dzielić listy za pomocą stronicowania, zawężać je filtrami, wyszukiwać tekst oraz sortować wynikami. API pozostaje szybkie i przyjazne. 🎉
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 „Filtrowanie, wyszukiwanie i stronicowanie” jest bezpłatna?
Tak — pełny tekst „Filtrowanie, wyszukiwanie i stronicowanie” 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 „Filtrowanie, wyszukiwanie i stronicowanie”?
Zwiększanie użyteczności dużych odpowiedzi API Ć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 „Filtrowanie, wyszukiwanie i stronicowanie”?
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
- ModelViewSet i routery
- Uprawnienia i ograniczanie częstotliwości
- Uwierzytelnianie tokenami i JWT
- Filtrowanie, wyszukiwanie i stronicowanie