Setting Up RESTful APIs with Flask or Django

 ⚖️ Flask vs Django for REST APIs

Feature Flask Django (with DRF)

Type Micro-framework Full-stack web framework

Flexibility Highly customizable Batteries-included

REST Support Manual setup or Flask-RESTful Django REST Framework (DRF)

Ideal For Lightweight, fast APIs Scalable, complex APIs with admin


๐Ÿ”ง 1. Setting Up RESTful API with Flask

✅ Step-by-step:

a. Install Flask

bash

Copy

Edit

pip install Flask

b. Basic API Example (app.py)

python

Copy

Edit

from flask import Flask, jsonify, request


app = Flask(__name__)


# Mock data

books = [{"id": 1, "title": "1984", "author": "George Orwell"}]


@app.route('/books', methods=['GET'])

def get_books():

    return jsonify(books)


@app.route('/books', methods=['POST'])

def add_book():

    data = request.get_json()

    books.append(data)

    return jsonify(data), 201


@app.route('/books/<int:book_id>', methods=['GET'])

def get_book(book_id):

    book = next((b for b in books if b["id"] == book_id), None)

    return jsonify(book) if book else ('Not Found', 404)


if __name__ == '__main__':

    app.run(debug=True)

c. Run Server

bash

Copy

Edit

python app.py

๐Ÿงฐ Optional for Flask: Use Flask-RESTful

bash

Copy

Edit

pip install flask-restful

Example:


python

Copy

Edit

from flask import Flask

from flask_restful import Api, Resource


app = Flask(__name__)

api = Api(app)


class Hello(Resource):

    def get(self):

        return {'message': 'Hello, API!'}


api.add_resource(Hello, '/')


if __name__ == '__main__':

    app.run(debug=True)

๐Ÿงฑ 2. Setting Up RESTful API with Django + DRF (Django REST Framework)

✅ Step-by-step:

a. Install Django and DRF

bash

Copy

Edit

pip install django djangorestframework

b. Create a Project and App

bash

Copy

Edit

django-admin startproject myapi

cd myapi

python manage.py startapp books

c. Update settings.py

python

Copy

Edit

INSTALLED_APPS = [

    ...

    'rest_framework',

    'books',

]

d. Define a Model (books/models.py)

python

Copy

Edit

from django.db import models


class Book(models.Model):

    title = models.CharField(max_length=100)

    author = models.CharField(max_length=100)

e. Create Serializer (books/serializers.py)

python

Copy

Edit

from rest_framework import serializers

from .models import Book


class BookSerializer(serializers.ModelSerializer):

    class Meta:

        model = Book

        fields = '__all__'

f. Create Views (books/views.py)

python

Copy

Edit

from rest_framework import viewsets

from .models import Book

from .serializers import BookSerializer


class BookViewSet(viewsets.ModelViewSet):

    queryset = Book.objects.all()

    serializer_class = BookSerializer

g. Configure URLs (books/urls.py)

python

Copy

Edit

from django.urls import path, include

from rest_framework.routers import DefaultRouter

from .views import BookViewSet


router = DefaultRouter()

router.register(r'books', BookViewSet)


urlpatterns = [

    path('', include(router.urls)),

]

Include this in myapi/urls.py:


python

Copy

Edit

from django.contrib import admin

from django.urls import path, include


urlpatterns = [

    path('admin/', admin.site.urls),

    path('api/', include('books.urls')),

]

h. Run Migrations and Server

bash

Copy

Edit

python manage.py makemigrations

python manage.py migrate

python manage.py runserver

You now have a full REST API at: http://127.0.0.1:8000/api/books/


๐Ÿง  Summary

Task Flask Django + DRF

Setup Time Very fast Moderate

Learning Curve Low Medium to High

Admin Panel ❌ No (needs third-party) ✅ Yes

Built-in Auth ❌ No (needs extension) ✅ Yes (ready out-of-the-box)

Ideal Use Case Simple APIs or microservices Complex or large-scale APIs

Learn Full Stack Python Course in Hyderabad

Read More

Flask vs Django for Full Stack Development: A Comparison

How to Use Django Models for Database Management

Visit Our IHUB Talent Training Institute in Hyderabad

Get Directions


Comments

Popular posts from this blog

Handling Frames and Iframes Using Playwright

Cybersecurity Internship Opportunities in Hyderabad for Freshers

Tosca for API Testing: A Step-by-Step Tutorial