📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Django Framework Django Custom Middleware

Django Custom Middleware

5 min read
Write timing and activity logging middleware as functions or classes applied globally.

Writing Custom Middleware

def timing_middleware(get_response):
    def middleware(request):
        import time
        start    = time.time()
        response = get_response(request)
        elapsed  = round(time.time() - start, 3)
        response["X-Response-Time"] = str(elapsed) + "s"
        return response
    return middleware

class UserActivityMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
    def __call__(self, request):
        response = self.get_response(request)
        if request.user.is_authenticated:
            UserActivity.objects.update_or_create(
                user=request.user,
                defaults={"last_active": timezone.now()}
            )
        return response

# settings.py
MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "myapp.middleware.timing_middleware",
    "myapp.middleware.UserActivityMiddleware",
]