Django Middleware

Web DevelopmentDjangoFree Lesson

Advertisement

Introduction

Middleware is a framework of hooks into Django's request/response processing.

Built-in Middleware

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
]

Custom Middleware

class RequestLoggerMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
    
    def __call__(self, request):
        # Before view
        print(f"Request: {request.path}")
        
        response = self.get_response(request)
        
        # After view
        print(f"Response: {response.status_code}")
        return response

Method Hooks

class ProcessMiddleware:
    def process_request(self, request):
        # Before routing
        pass
    
    def process_view(self, request, view_func, view_args, view_kwargs):
        # Before view call
        pass
    
    def process_response(self, request, response):
        # After view
        return response
    
    def process_exception(self, request, exception):
        # On exception
        return None  # Or HttpResponse

Practice Problems

  1. Log all requests
  2. Track user sessions
  3. Add CORS headers
  4. Rate limiting middleware
  5. Authentication middleware

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement