Django REST Framework - Introduction to API Development


Django REST Framework is a powerful toolkit for building Web APIs in Django. It simplifies the process of creating, updating, and managing APIs, making it a popular choice for API development. In this guide, we'll provide an introduction to API development using Django REST Framework, complete with sample code.


Before you begin, make sure you have the following prerequisites in place:

  • Django: You should have Django installed. If not, use
    pip install django
    to install it.
  • Django REST Framework: Install Django REST Framework using
    pip install djangorestframework
  • Django Project: You should have a Django project set up. If not, refer to the guide on creating your first Django project.

Step 1: Create a Django App

Start by creating a Django app within your project to organize your API-related code.

Sample Code

Use the following command to create a new app named "api" in your project:

python startapp api

Step 2: Define API Models

In your app, define models that represent the data you want to expose through your API. These models are similar to Django models but are used for serializing data.

Sample Code

Here's an example of defining a model for a simple API:

from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)

Step 3: Create Serializers

Serializers define how your data models should be converted to and from JSON. They play a crucial role in the API development process.

Sample Code

Here's an example of creating a serializer for the "Book" model:

from rest_framework import serializers
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author']

Step 4: Create API Views

Views in Django REST Framework define how the API should respond to various HTTP requests. You can create views that list, create, update, and delete objects.

Sample Code

Here's an example of creating a view for listing and creating books:

from rest_framework import generics
from .models import Book
from .serializers import BookSerializer
class BookList(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer

Step 5: Configure URL Routing

Configure URL routing to map API views to specific URLs. This allows users to access your API endpoints.

Sample Code

Here's an example of configuring URL routing in your app's

from django.urls import path
from .views import BookList
urlpatterns = [
path('api/books/', BookList.as_view(), name='book-list'),

Step 6: Run Migrations

Run database migrations to create the necessary database tables for your API models.

Sample Code

Use the following commands to apply migrations:

python makemigrations
python migrate

Step 7: Test Your API

You can now test your API by making HTTP requests to the defined endpoints. Tools like Postman or cURL can be helpful for testing.


Django REST Framework simplifies API development in Django projects. By following these steps and exploring the extensive capabilities of Django REST Framework, you can create robust and feature-rich APIs for your web applications.