Django Academy · Lekcja

Filtrowanie, wyszukiwanie i stronicowanie

Zwiększanie użyteczności dużych odpowiedzi API

Lekcja 4 z 413 kroki

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. 🎉

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 „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

  1. ModelViewSet i routery
  2. Uprawnienia i ograniczanie częstotliwości
  3. Uwierzytelnianie tokenami i JWT
  4. Filtrowanie, wyszukiwanie i stronicowanie
← Powrót do Django Academy