Flask এবং Django হল দুটি জনপ্রিয় Python ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করার জন্য ব্যবহৃত হয়। Flask একটি মাইক্রোফ্রেমওয়ার্ক এবং Django একটি পূর্ণাঙ্গ ফ্রেমওয়ার্ক, যার মাধ্যমে সহজে RESTful API তৈরি করা যায়। নিচে Flask এবং Django দিয়ে API তৈরি করার প্রক্রিয়া তুলে ধরা হলো।
Flask দিয়ে API তৈরি:
Flask একটি লাইটওয়েট এবং মিনিমালিস্ট ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করতে সহজ এবং দ্রুত।
ধাপ ১: Flask ইনস্টল করা
প্রথমে Flask ইনস্টল করতে হবে। আপনি pip ব্যবহার করে এটি ইনস্টল করতে পারেন:
pip install Flask
ধাপ ২: Flask API তৈরি করা
এখন, একটি সিম্পল RESTful API তৈরি করতে নিচের কোডটি ব্যবহার করুন:
from flask import Flask, jsonify, request
app = Flask(__name__)
# Sample data
tasks = [
{
'id': 1,
'title': 'Learn Python',
'done': False
},
{
'id': 2,
'title': 'Build an API',
'done': True
}
]
# Home route
@app.route('/')
def home():
return "Welcome to Flask API!"
# GET method to retrieve tasks
@app.route('/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
# GET method to retrieve a single task
@app.route('/tasks/<int:task_id>', methods=['GET'])
def get_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if len(task) == 0:
return jsonify({'error': 'Task not found'}), 404
return jsonify({'task': task[0]})
# POST method to add a new task
@app.route('/tasks', methods=['POST'])
def add_task():
task_data = request.get_json()
new_task = {
'id': len(tasks) + 1,
'title': task_data['title'],
'done': task_data['done']
}
tasks.append(new_task)
return jsonify({'task': new_task}), 201
# PUT method to update a task
@app.route('/tasks/<int:task_id>', methods=['PUT'])
def update_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if len(task) == 0:
return jsonify({'error': 'Task not found'}), 404
task_data = request.get_json()
task[0]['title'] = task_data['title']
task[0]['done'] = task_data['done']
return jsonify({'task': task[0]})
# DELETE method to remove a task
@app.route('/tasks/<int:task_id>', methods=['DELETE'])
def delete_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if len(task) == 0:
return jsonify({'error': 'Task not found'}), 404
tasks.remove(task[0])
return jsonify({'message': 'Task deleted'}), 200
if __name__ == '__main__':
app.run(debug=True)
ধাপ ৩: API চালানো
কোডটি লিখে python app.py চালিয়ে Flask API শুরু করুন। এটি ডিফল্টভাবে http://127.0.0.1:5000 এ চলবে।
- GET
/tasks— সমস্ত টাস্ক দেখাবে। - GET
/tasks/<task_id>— নির্দিষ্ট টাস্কের তথ্য দেখাবে। - POST
/tasks— একটি নতুন টাস্ক তৈরি করবে। - PUT
/tasks/<task_id>— একটি টাস্ক আপডেট করবে। - DELETE
/tasks/<task_id>— একটি টাস্ক মুছে ফেলবে।
Django দিয়ে API তৈরি:
Django একটি পূর্ণাঙ্গ ফ্রেমওয়ার্ক যা শক্তিশালী এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। Django REST Framework (DRF) Django-এর জন্য একটি শক্তিশালী লাইব্রেরি যা API তৈরি করতে ব্যবহৃত হয়।
ধাপ ১: Django এবং Django REST Framework ইনস্টল করা
Django এবং Django REST Framework ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
pip install django
pip install djangorestframework
ধাপ ২: Django প্রজেক্ট তৈরি করা
Django প্রজেক্ট তৈরি করুন:
django-admin startproject myproject cd myprojectএকটি অ্যাপ তৈরি করুন:
python manage.py startapp myapiREST Framework অ্যাপ অ্যাড করুন:
আপনার
myproject/settings.pyফাইলেINSTALLED_APPSএrest_frameworkএবংmyapiঅ্যাপ যুক্ত করুন:INSTALLED_APPS = [ ..., 'rest_framework', 'myapi', ]
ধাপ ৩: Django REST Framework সেটআপ
Models তৈরি করুন (myapi/models.py):
from django.db import models class Task(models.Model): title = models.CharField(max_length=100) done = models.BooleanField(default=False) def __str__(self): return self.titleSerializers তৈরি করুন (myapi/serializers.py):
from rest_framework import serializers from .models import Task class TaskSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['id', 'title', 'done']Views তৈরি করুন (myapi/views.py):
from rest_framework import viewsets from .models import Task from .serializers import TaskSerializer class TaskViewSet(viewsets.ModelViewSet): queryset = Task.objects.all() serializer_class = TaskSerializerURL Routing (myapi/urls.py):
from django.urls import path, include from rest_framework.routers import DefaultRouter from .views import TaskViewSet router = DefaultRouter() router.register(r'tasks', TaskViewSet) urlpatterns = [ path('api/', include(router.urls)), ]প্রোজেক্টের মূল URLs (myproject/urls.py):
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('myapi.urls')), ]
ধাপ ৪: মাইগ্রেশন এবং API চালানো
মাইগ্রেশন চালান:
python manage.py makemigrations python manage.py migrateডিজিটাল সার্ভার চালান:
python manage.py runserver
এখন আপনি http://127.0.0.1:8000/api/tasks/ এ আপনার API অ্যাক্সেস করতে পারবেন।
সারাংশ:
- Flask: Flask একটি মাইক্রোফ্রেমওয়ার্ক যা API তৈরি করার জন্য খুবই লাইটওয়েট এবং সহজ। Flask এর মাধ্যমে সিম্পল API দ্রুত তৈরি করা সম্ভব।
- Django: Django একটি পূর্ণাঙ্গ ফ্রেমওয়ার্ক, এবং Django REST Framework (DRF) ব্যবহার করে শক্তিশালী, স্কেলেবল API তৈরি করা যায়। এটি আরও বেশি ফিচার যেমন authentication, permissions, এবং viewsets প্রদান করে।
আপনি আপনার প্রয়োজন অনুযায়ী Flask বা Django যেকোনো একটি ব্যবহার করতে পারেন, তবে যদি আপনি একটি পূর্ণাঙ্গ অ্যাপ্লিকেশন চান যেখানে বিভিন্ন ফিচার এবং স্কেলেবিলিটি থাকতে হয়, তবে Django একটি ভালো পছন্দ। Flask সহজ এবং ছোট প্রকল্পের জন্য উপযুক্ত।