Filtragem, pesquisa e paginação
Torne grandes respostas da API utilizáveis
Filtragem, pesquisa e paginação é uma aula grátis de Django Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Django Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Django Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Big Responses Are a Problem
Returning thousands of rows in one response is slow and unwieldy. DRF gives you filtering, search, and pagination to keep payloads usable.
Why Pagination First
Pagination splits a large list into pages, so clients fetch a slice at a time instead of everything at once.
Turning On Pagination
Set a default pagination class and page size in settings, and every list view starts paginating automatically.
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS':
'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10,
}The Paginated Shape
PageNumberPagination wraps results with count, next, and previous links, so clients can walk through pages easily. 📄
Pagination Styles
Pick a style: PageNumberPagination uses page numbers, while LimitOffsetPagination lets clients ask for a limit and offset directly.
Now, Filtering
Filtering narrows results by exact field values, like asking only for books where the author id is 5.
Adding DjangoFilterBackend
Install django-filter, enable DjangoFilterBackend, and list the fields clients may filter on with filterset_fields.
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
filterset_fields = ['author', 'published_year']Filters as Query Params
Clients filter through the URL query string, so a request like /books/?author=5 returns only that author's books. 🔍
Search vs Filter
SearchFilter does fuzzy text matching across fields, while filtering matches exact values. Search is for free-text queries.
Enabling Search Fields
Add SearchFilter and list the columns to scan in search_fields. Clients then pass a search term with the search query param.
from rest_framework.filters import SearchFilter
class BookViewSet(viewsets.ModelViewSet):
filter_backends = [SearchFilter]
search_fields = ['title', 'author__name']Ordering Results
Add OrderingFilter so clients can sort with ordering=title or ordering=-price for descending order, all from the URL.
Quick Check
Make sure you can tell these tools apart.
Recap: Usable API Responses
You can now slice lists with pagination, narrow them with filters, find text with search, and sort with ordering. Your API stays fast and friendly. 🎉
Perguntas Frequentes
A aula “Filtragem, pesquisa e paginação” é grátis?
Sim — o texto completo de “Filtragem, pesquisa e paginação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Django Academy, atualize para CoddyKit PRO. O curso de Django Academy inclui 4 aulas no total.
O que vou aprender em “Filtragem, pesquisa e paginação”?
Torne grandes respostas da API utilizáveis Você pratica Django Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Django Academy?
Nenhuma experiência prévia é necessária. Django Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Filtragem, pesquisa e paginação”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Django Academy?
Sim. Cada aula de Django Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- ModelViewSet e roteadores
- Permissões e limitação de requisições
- Autenticação por token e JWT
- Filtragem, pesquisa e paginação