Understand How to Use django HttpResponseNotFound
In this tutorial, we'll learn how to use Django HttpResponseNotFound and the difference between HttpResponseNotFound and HttpResponse.
Contents
1. What is HttpResponseNotFound
HttpResponseNotFound: is a class that returns a response with 404 status
2. Using HttpResponseNotFound with examples
let's create a simpe view that returns a "No page Found" response.
But, first we need to import HttpResponseNotFound.
from django.http import HttpResponseNotFound
example #1:
def response_not_found_ex(request): return HttpResponseNotFound("<h1>Page Not Found</h1>")
Result:

Page View Source:

Response Status:

3. Why HttpResponseNotFound?
For example, let's say we want to return a model Queryset, and if the Queryset is empty, the client we'll get 404 Response.
def response_not_found_ex(request): obj = Comments.objects.all() if not obj: return HttpResponseNotFound("<h1>Page Not Found</h1>")
this is just one of many things you can do with HttpResponseNotFound
4. Difference between HttpResponseNotFound and HttpResponse
HttpResponseNotFound: returns a response with 404 status.
HttpResponse: returns a response with 200 status by default.
To be sure, let's see these two examples.
example #1: with HttpResponseNotFound
def response_not_found_ex(request): return HttpResponseNotFound("<h1>Page Not Found</h1>")
Response's Status:

example #2: with HttpResponse
def response_not_found_ex(request): return HttpResponse("<h1>Page Not Found</h1>")
Response's Status:
