Django REST Framework

Web DevelopmentDjangoFree Lesson

Advertisement

Introduction

Django REST Framework (DRF) builds powerful, flexible Web APIs.

Serializers

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ["id", "title", "author", "price", "published_date"]
        read_only_fields = ["id"]

Views

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Book
from .serializers import BookSerializer

class BookListView(APIView):
    def get(self, request):
        books = Book.objects.all()
        serializer = BookSerializer(books, many=True)
        return Response(serializer.data)
    
    def post(self, request):
        serializer = BookSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Using ViewSets

from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

Practice Problems

  1. Create ModelSerializer
  2. Build CRUD API with ViewSet
  3. Add filtering and search
  4. Implement pagination
  5. Set up authentication for API

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement