Django
Beginner
1 min read
The Django Request-Response Cycle
Example
# Visualising the Django request-response cycle
# 1. Browser sends: GET /blog/posts/5/
# 2. Middleware stack (request phase)
# SecurityMiddleware -> SessionMiddleware -> AuthenticationMiddleware -> ...
# 3. URLconf matching (mysite/urls.py -> blog/urls.py)
from django.urls import path, include
urlpatterns = [
path('blog/', include('blog.urls')),
]
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('posts/<int:pk>/', views.post_detail, name='post-detail'),
]
# 4. View called with request + captured pk=5
# blog/views.py
from django.shortcuts import get_object_or_404, render
from .models import Post
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
# 5. Template rendered -> HttpResponse built
# 6. Middleware stack (response phase)
# 7. Response sent to browser
Related Resources
Django Reference
Complete tag & property list
Django How-To Guides
Step-by-step practical guides
Django Exercises
Practice what you've learned
More in Django