Django views must return an HTTP response. HttpResponse, render(), and redirect() are the three most commonly used response utilities to send content, HTML pages, or navigation instructions back to the client.
Used to return plain content such as text or HTML directly.
# Import HttpResponse class
from django.http import HttpResponse
def my_view(request):
return HttpResponse("Hello, World!")
# Returning raw HTML content
from django.http import HttpResponse
def html_view(request):
return HttpResponse("<h1>Welcome to My Website</h1>")
Combines template and context data to generate dynamic HTML.
# Rendering template with context
from django.shortcuts import render
def my_view(request):
context = {'greeting': 'Hello, World!'}
return render(request, 'template.html', context)
Sends the user to another URL.
# Redirecting to named URL
from django.shortcuts import redirect
def redirect_view(request):
return redirect('home')
Change view behavior by switching between HttpResponse, render, and redirect in a Django app and observe browser behavior.
HttpResponserender()redirect()render() for HTML pages