Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে...
  4. Django Request এবং Response Life Cycle

Django Request এবং Response Life Cycle

একটি Django অ্যাপ্লিকেশন চলাকালীন কীভাবে একটি HTTP request গ্রহণ করা হয় এবং কীভাবে response তৈরি করা হয়, সেই প্রক্রিয়া বোঝা একটি Django ডেভেলপার হিসেবে অত্যন্ত গুরুত্বপূর্ণ। Django তে request-response life cycle একটি ধারাবাহিক প্রক্রিয়া যা request পাঠানোর মুহূর্ত থেকে শুরু করে response ফিরে পাওয়া পর্যন্ত সম্পন্ন হয়। এখানে আমরা request এবং response এর পুরো life cycle বিস্তারিতভাবে আলোচনা করবো।


HTTP Request এবং Response কি?

একটি request সাধারণত ব্যবহারকারী তার ব্রাউজারের মাধ্যমে কোনো নির্দিষ্ট URL বা লিঙ্ক এ ক্লিক করার মাধ্যমে শুরু হয়। যখন কোনো URL এ ক্লিক করা হয় বা ব্রাউজারে টাইপ করা হয়, তখন HTTP প্রোটোকলের মাধ্যমে একটি request পাঠানো হয়। অন্যদিকে, response হলো সার্ভার থেকে পাঠানো তথ্য যা ব্যবহারকারী দেখতে পান।

  1. Request: এটি হলো ক্লায়েন্ট (ব্যবহারকারী) থেকে সার্ভারে পাঠানো একটি মেসেজ, যেখানে কোন ডাটা বা কন্টেন্ট ব্যবহারকারী দেখতে চান তা উল্লেখ থাকে। যেমন – “example.com/home” ভিজিট করার জন্য একটি GET request পাঠানো।
  2. Response: এটি হলো সার্ভার থেকে ক্লায়েন্টে ফেরত পাঠানো মেসেজ যেখানে চাওয়া তথ্য থাকে। যেমন – “Hello, Django!” মেসেজ পাঠানো।

Django Request এবং Response Life Cycle এর ধাপসমূহ

১. ক্লায়েন্ট থেকে Request পাঠানো

ব্যবহারকারী যখন তার ব্রাউজারে কোনো URL টাইপ করেন বা কোনো লিঙ্কে ক্লিক করেন, তখন ব্রাউজার HTTP প্রোটোকলের মাধ্যমে একটি request পাঠায়। এই request টি একটি নির্দিষ্ট HTTP মেথড (GET, POST, PUT, DELETE) এর মাধ্যমে পাঠানো হয়।

HTTP মেথডগুলোর উদাহরণ:

  • GET: সাধারণত তথ্য প্রাপ্তির জন্য ব্যবহৃত হয়।
  • POST: সাধারণত ডাটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়।
  • PUT: ডাটা আপডেট করার জন্য ব্যবহৃত হয়।
  • DELETE: ডাটা ডিলিট করার জন্য ব্যবহৃত হয়।

২. WSGI Server

যখন Django একটি request গ্রহণ করে, এটি একটি WSGI (Web Server Gateway Interface) server এর মাধ্যমে request টি প্রসেস করতে শুরু করে। WSGI হলো একটি Python স্ট্যান্ডার্ড, যা ওয়েব সার্ভার এবং ওয়েব অ্যাপ্লিকেশনের মধ্যে যোগাযোগ করার একটি মাধ্যম।

Django এর request টি প্রথমে WSGI server দ্বারা Django এর অ্যাপ্লিকেশনের কাছে পাঠানো হয়।


৩. URL Routing এবং URLconf

Django তে urls.py ফাইল এর মাধ্যমে request এর URL মেলে দেখে কোন view function টি response তৈরির জন্য ব্যবহার করা হবে তা ঠিক করে। এই ফাইলটিকে Django এর term এ URLconf বলা হয়।

উদাহরণ:

from django.urls import path
from . import views

urlpatterns = [
    path('home/', views.home_view),
    path('about/', views.about_view),
]

এখানে যদি কোনো ব্যবহারকারী example.com/home visit করেন, তাহলে home_view ফাংশনটি response তৈরি করবে।


৪. View Function Execution

URL Routing সম্পন্ন হওয়ার পর, Django সঠিক view function টি call করে। এই view function মূলত Django এর কাছে request টি কীভাবে প্রসেস করা হবে এবং কীভাবে response তৈরি হবে তা নির্ধারণ করে।

উদাহরণ:

from django.http import HttpResponse

def home_view(request):
    return HttpResponse("Welcome to Django Home Page!")

এখানে home_view ফাংশনটি একটি HttpResponse তৈরি করছে এবং ব্যবহারকারীকে “Welcome to Django Home Page!” পাঠাচ্ছে।


৫. Middleware Execution

Middleware হলো request-response life cycle এর মাঝখানে কাজ করে এমন কিছু কার্যপ্রণালী বা কোড যা Django তে request এবং response প্রসেসিং এর মাঝে ব্যবহৃত হয়। Middleware এর মাধ্যমে বিভিন্ন ধরণের কাজ করা যায় যেমন – ব্যবহারকারীর authentication চেক, request logging, ইত্যাদি।

Django middleware request আসার পর ও response পাঠানোর আগে কাজ করে।

Middleware এর উদাহরণ:

from django.utils.deprecation import MiddlewareMixin

class CustomMiddleware(MiddlewareMixin):
    def process_request(self, request):
        print("Request URL:", request.path)
    
    def process_response(self, request, response):
        print("Response Status:", response.status_code)
        return response

এই CustomMiddleware middleware টি requestresponse এর সাথে কাজ করবে, এবং আমরা request এর path ও response এর status code দেখতে পাবো।

Middleware ব্যবহার করে security check, logging, caching, এবং বিভিন্ন প্রয়োজনীয় কাজ করা যায়।

How can we help?