Mediumdrf

Что такое Django REST Framework (DRF)?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

DRF — библиотека для построения REST API на Django. Основные компоненты: Serializers, ViewSets, Routers, Authentication, Permissions, Pagination, Throttling.

from rest_framework import serializers, viewsets, routers
from rest_framework.permissions import IsAuthenticated

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'name', 'email']

class UserViewSet(viewsets.ModelViewSet):   # CRUD из коробки
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = [IsAuthenticated]

# Routers — auto URL generation
router = routers.DefaultRouter()
router.register('users', UserViewSet)
urlpatterns = router.urls
  • Authentication: TokenAuthentication, JWTAuthentication (simplejwt);
  • Pagination: PageNumberPagination, CursorPagination;
  • Throttling — rate limiting; Filtering, Search, Ordering;
  • Генерирует browsable API (HTML), content negotiation (JSON, ...);
  • Альтернатива: django-ninja (FastAPI-like API на type hints).

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.