Расскажи про основные базовые классы, которые используешь в Django REST framework
Python
Junior
Без компании
Расскажи про основные базовые классы, которые используешь в Django REST framework
Ответы
Django REST framework (DRF) предоставляет несколько ключевых базовых классов для создания API:
- **APIView** – базовый класс для представлений, аналогичен Django View, но добавляет REST-специфичные методы (get, post, put, delete и т.д.).
```
from rest_framework.views import APIView
from rest_framework.response import Response
class ExampleView(APIView):
def get(self, request):
return Response({"message": "Hello, DRF!"})
```
- **GenericAPIView** – расширяет APIView, добавляя общие методы для работы с моделями (queryset, serializer_class).
- **Mixins** (ListModelMixin, CreateModelMixin и др.) – предоставляют стандартные действия (list, create, retrieve, update, delete). Используются вместе с GenericAPIView.
- **ViewSets** (ModelViewSet, ReadOnlyModelViewSet) – объединяют логику нескольких действий в одном классе.
```
from rest_framework.viewsets import ModelViewSet
from .models import Book
from .serializers import BookSerializer
class BookViewSet(ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
```
- **Serializer** (ModelSerializer) – для валидации и преобразования данных.
Эти классы позволяют быстро создавать CRUD-эндпоинты с минимальным кодом.