
Today we will create a basic Rest API in Django. Suppose you have a project with products app. In this app, a model is given with the class name Product. The coding of the models.py is
from django.db import models # Create your models here. class Product(models.Model): productname = models.CharField(max_length=100) price = models.DecimalField(max_digits=15, decimal_places=2) def __str__(self): return self.productname
ok, now will create a rest api for the app products
Step-1: Install djangorestframework
pip install djangorestframework
Step-2: Create an app name “api”
python manage.py startapp api
Step-3: create a file named serializers.py and the write the below code
from rest_framework import serializers from products.models import Product class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product # ('__all__') for all fields # for custom fields: # fields = ['productname', 'price'] fields = ('__all__')
Step-4: include App name api in the settings file
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'products', 'api', 'rest_framework', ]
Step-5: Now go to Views.py under api app and write the below code
from products.models import Product from .serializers import ProductSerializer # Create your views here. class ProductAPIView(generics.ListAPIView): queryset = Product.objects.all() serializer_class = ProductSerializer
Step-6: Setup project urls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('api.urls')), ]
Step7: Now create urls.py under api apps urls.py and write the below code
from django.urls import path from .views import ProductAPIView urlpatterns = [ path('products/', ProductAPIView.as_view()), ]
Now run the server by the below code
python manage.py runserver
Step-8: Now follow URL to see the get data through rest api
http://127.0.0.1:8000/api/products/
Finally, you will see the below data in browser

[fb_button]