ভূমিকা
বাংলাদেশে ফ্রিল্যান্সিং মার্কেট এখন দারুণ সম্ভাবনাময়। ক্লায়েন্টরা প্রায়ই REST API চান — মোবাইল অ্যাপ, ওয়েব অ্যাপ, বা থার্ড-পার্টি ইন্টিগ্রেশনের জন্য। আর এই API বানানোর সবচেয়ে জনপ্রিয় টুল হচ্ছে Python ও Django REST Framework (DRF)। এই Django REST Framework tutorial Bangladesh -এ আমি আপনাকে শেখাবো কীভাবে স্ক্র্যাচ থেকে একটি REST API তৈরি করবেন, যা আপনার ফ্রিল্যান্স প্রজেক্টে সরাসরি ব্যবহার করতে পারবেন। আমরা বাস্তব উদাহরণ নিয়ে কাজ করব — যেমন একটি ব্লগ পোস্ট API যেখানে CRUD অপারেশন থাকবে।
প্রয়োজনীয় টুলস ও পরিবেশ সেটআপ
প্রথমে আপনার কম্পিউটারে নিচের টুলস ইনস্টল করা থাকতে হবে:
- Python 3.8 বা তার উপরে
- pip (পাইথন প্যাকেজ ম্যানেজার)
- virtualenv বা venv (আইসোলেটেড এনভায়রনমেন্ট)
- কোড এডিটর (VS Code, PyCharm ইত্যাদি)
একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করে অ্যাক্টিভেট করুন:
python -m venv myenv
source myenv/bin/activate # লিনাক্স/ম্যাক
myenv\Scripts\activate # উইন্ডোজতারপর প্রয়োজনীয় প্যাকেজ ইনস্টল করুন:
pip install django djangorestframeworkDjango প্রজেক্ট ও অ্যাপ তৈরি
একটি Django প্রজেক্ট তৈরি করুন:
django-admin startproject myproject
cd myprojectএখন একটি অ্যাপ তৈরি করুন, নাম দিন api:
python manage.py startapp apimyproject/settings.py -এ INSTALLED_APPS -এ 'rest_framework' ও 'api' যোগ করুন:
INSTALLED_APPS = [
...
'rest_framework',
'api',
]মডেল তৈরি (বাংলাদেশি কন্টেক্সটে)
ধরুন আমরা একটি ব্লগ পোস্টের API বানাবো, যেখানে পোস্টে বাংলা কন্টেন্ট থাকবে। api/models.py -এ মডেল লিখুন:
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
author = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.titleমাইগ্রেশন তৈরি ও অ্যাপ্লাই করুন:
python manage.py makemigrations
python manage.py migrateসিরিয়ালাইজার তৈরি
সিরিয়ালাইজার JSON-এ ডেটা রূপান্তর করে। api/serializers.py ফাইল তৈরি করে নিচের কোড লিখুন:
from rest_framework import serializers
from .models import BlogPost
class BlogPostSerializer(serializers.ModelSerializer):
class Meta:
model = BlogPost
fields = ['id', 'title', 'content', 'author', 'created_at', 'updated_at']ভিউ (View) তৈরি — ফাংশন-বেসড ও ক্লাস-বেসড
DRF-এ ভিউ লেখার দুটি উপায় আছে। আমরা ক্লাস-বেসড ভিউ ব্যবহার করব, কারণ এটি বেশি পুনঃব্যবহারযোগ্য। api/views.py:
from rest_framework import generics
from .models import BlogPost
from .serializers import BlogPostSerializer
class BlogPostListCreate(generics.ListCreateAPIView):
queryset = BlogPost.objects.all()
serializer_class = BlogPostSerializer
class BlogPostRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView):
queryset = BlogPost.objects.all()
serializer_class = BlogPostSerializerএছাড়াও ফাংশন-বেসড ভিউ চাইলে @api_view ডেকোরেটর ব্যবহার করতে পারেন।
URL রাউটিং
api/urls.py ফাইল তৈরি করুন:
from django.urls import path
from .views import BlogPostListCreate, BlogPostRetrieveUpdateDestroy
urlpatterns = [
path('posts/', BlogPostListCreate.as_view(), name='post-list'),
path('posts/<int:pk>/', BlogPostRetrieveUpdateDestroy.as_view(), name='post-detail'),
]এখন myproject/urls.py -এ অ্যাপের URL অন্তর্ভুক্ত করুন:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls')),
]API টেস্ট করা (Postman বা ব্রাউজার দিয়ে)
সার্ভার রান করুন:
python manage.py runserverএখন ব্রাউজারে http://127.0.0.1:8000/api/posts/ খুলুন। DRF-এর ব্রাউজেবল API দেখতে পাবেন। POST রিকোয়েস্ট পাঠাতে পারেন Postman বা curl ব্যবহার করে:
curl -X POST http://127.0.0.1:8000/api/posts/ \
-H 'Content-Type: application/json' \
-d '{"title":"বাংলাদেশে ফ্রিল্যান্সিং", "content":"টিপস ও ট্রিকস", "author":"রহিম"}'GET, PUT, DELETE অপারেশনও একইভাবে কাজ করবে।
অতিরিক্ত ফিচার: অথেনটিকেশন, পারমিশন ও প্যাজিনেশন
ফ্রিল্যান্স প্রজেক্টে সাধারণত অথেনটিকেশন প্রয়োজন। DRF-এ টোকেন-বেসড অথেনটিকেশন যোগ করা সহজ। settings.py -এ যোগ করুন:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}তারপর INSTALLED_APPS -এ 'rest_framework.authtoken' যোগ করুন এবং মাইগ্রেট করুন। ইউজার তৈরি করে টোকেন জেনারেট করুন। এখন API ব্যবহার করতে হেডারে Authorization: Token <token> পাঠাতে হবে।
বাংলাদেশি ফ্রিল্যান্স প্রজেক্টে ব্যবহারের টিপস
- ক্লায়েন্টের প্রয়োজন অনুযায়ী API ডকুমেন্টেশন তৈরি করুন (DRF-এর অটো ডকুমেন্টেশন বা Swagger) — এটি আপনার প্রফেশনালিজম বাড়াবে।
- API এ বাংলা কন্টেন্ট সাপোর্ট করতে
utf-8এনকোডিং নিশ্চিত করুন। - হোস্টিংয়ের জন্য PythonAnywhere, Heroku (ফ্রি টায়ার), বা বাংলাদেশের লোকাল হোস্টিং ব্যবহার করতে পারেন।
- প্রজেক্ট ডেলিভারির আগে ভালোভাবে টেস্ট করুন — ইউনিট টেস্ট লিখতে DRF-এর
APITestCaseব্যবহার করুন।
উপসংহার
এই Django REST Framework tutorial Bangladesh -এ আমরা শিখলাম কীভাবে একটি সম্পূর্ণ REST API তৈরি করতে হয় — মডেল, সিরিয়ালাইজার, ভিউ, URL, এবং অথেনটিকেশন। এই স্কিলটি বাংলাদেশের ফ্রিল্যান্স মার্কেটে আপনার চাহিদা অনেক বাড়িয়ে দেবে। আপনি চাইলে আরও জটিল API তৈরি করতে পারেন — যেমন ই-কমার্স, ব্লগ, বা সোশ্যাল মিডিয়া প্ল্যাটফর্ম। আরও জানতে আমাদের কোর্সগুলো দেখুন বা কমিউনিটিতে যোগ দিন।
সাধারণ প্রশ্নোত্তর
Django REST Framework কি শুধু বড় প্রজেক্টের জন্য?
না, DRF ছোট থেকে বড় সব প্রজেক্টেই ব্যবহার করা যায়। এটি খুবই ফ্লেক্সিবল এবং দ্রুত API ডেভেলপমেন্টের জন্য উপযুক্ত।
ফ্রিল্যান্স প্রজেক্টে DRF ব্যবহারের সুবিধা কী?
DRF ব্যাটারি-ইনক্লুডেড — অথেনটিকেশন, প্যাজিনেশন, সিরিয়ালাইজেশন সবই বিল্ট-ইন। ফলে ডেভেলপমেন্ট টাইম কমে, যা ফ্রিল্যান্সারদের জন্য বড় প্লাস।
বাংলাদেশে ফ্রিল্যান্সিংয়ের জন্য API কি ধরনের প্রজেক্ট বেশি চলে?
মোবাইল অ্যাপের ব্যাকএন্ড, ই-কমার্স API, ব্লগ API, এবং থার্ড-পার্টি ইন্টিগ্রেশন (যেমন পেমেন্ট গেটওয়ে) — এইগুলো খুবই ডিমান্ডিং।
DRF শিখতে কি আগে Django জানা জরুরি?
হ্যাঁ, DRF Django-র ওপর ভিত্তি করে তৈরি, তাই Django-র বেসিক (মডেল, ভিউ, URL) জানা থাকলে DRF শেখা সহজ।
হোস্টিংয়ের জন্য বাংলাদেশি কোনো সার্ভিস আছে?
হ্যাঁ, বাংলাদেশে বেশ কিছু লোকাল হোস্টিং আছে যেমন ServerFreak, ExonHost — এগুলোতে Python/Django সাপোর্ট আছে। তবে আন্তর্জাতিক প্ল্যাটফর্ম যেমন PythonAnywhere বা Heroku-ও ব্যবহার করতে পারেন।


