Django REST Framework

Django REST Framework (DRF) — это мощная и гибкая библиотека для создания REST API в Django приложениях.

Основные компоненты DRF

  • Serializers — преобразование данных между Python объектами и JSON
  • Views — обработка HTTP запросов (APIView, ViewSets)
  • Routers — автоматическое создание URL маршрутов
  • Authentication — различные способы аутентификации
  • Permissions — система прав доступа

Типы представлений

  • APIView — базовый класс для API представлений
  • GenericAPIView — обобщенные представления
  • ViewSets — наборы представлений для CRUD операций
  • ModelViewSet — полный CRUD для моделей

Пример создания API

 1from rest_framework import serializers, viewsets
 2from .models import Book
 3
 4class BookSerializer(serializers.ModelSerializer):
 5    class Meta:
 6        model = Book
 7        fields = '__all__'
 8
 9class BookViewSet(viewsets.ModelViewSet):
10    queryset = Book.objects.all()
11    serializer_class = BookSerializer

Установка DRF

1# Установка через pip
2pip install djangorestframework
3
4# Установка через poetry
5poetry add djangorestframework

Аутентификация в DRF

  • TokenAuthentication — аутентификация по токену
  • SessionAuthentication — сессии Django
  • BasicAuthentication — базовая HTTP аутентификация
  • JWT — JSON Web Tokens (через сторонние пакеты)

FAQ

Когда использовать ViewSets вместо APIView?

ViewSets лучше для стандартных CRUD операций, APIView — для кастомной логики.