Django Middleware – Complete
What is Middleware?
Middleware is a special layer in Django that processes every request and response globally before or after the view is called.
It acts like a filter, gatekeeper or security guard in a web app.
π§ Why is Middleware Important?
| Task | Done using Middleware |
|---|---|
| Block specific users | ✅ |
| Auto login redirect | ✅ |
| Theme (dark/light) toggle | ✅ |
| Add info to response/request | ✅ |
| Language / Location detection | ✅ |
⚙️ How Middleware Works in Django
Browser → Middleware → View → Middleware → Response → Browser
pip install django-ipware
✅ Step 1: Create Middleware File
π Create
middleware.py in your Django app (e.g., main/middleware.py)from ipware import get_client_ip
from django.http import HttpResponse
class BlockForeignMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
ip, _ = get_client_ip(request)
# Fake block: if IP starts with "172."
if ip and ip.startswith("172."):
return HttpResponse("❌ Access Blocked: Not allowed in your region.", status=403)
# Otherwise continue
response = self.get_response(request)
return response
✅ Step 2: Add Middleware in settings.py
✅ Step 4: Add URL
π urls.py
from django.contrib import admin
from django.urls import path
from main.views import homepage
urlpatterns = [
path('', homepage),
path('admin/', admin.site.urls),
]
✅ Step 5: Run the Server
python manage.py runserver
Comments
Post a Comment