This example shows a complete setup for a simple API to manage books. You can list, add, update, or delete books through the API.
from django.db import models
from rest_framework import serializers, viewsets, routers
from django.urls import path, include
from django.contrib import admin
# Model
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
# Serializer
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author']
# ViewSet
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
# Router
router = routers.DefaultRouter()
router.register(r'books', BookViewSet)
# URL patterns
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(router.urls)),
]
# Explanation:
# This code creates a Book model, a serializer to convert it to JSON,
# and a ViewSet to handle API requests. The router sets up URLs automatically.