8.2. Views Function Based

8.2.1. Example

from django.http import Http404
from django.shortcuts import render
from shop.models import Product

def product_detail(request, product_id):
    try:
        p = Product.objects.get(pk=product_id)
    except Product.DoesNotExist:
        raise Http404("Product does not exist")
    return render(request, 'shop/product-detail.html', {'product': p})

8.2.2. HttpResponse

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

8.2.3. HttpResponseNotFound

from django.http import HttpResponse, HttpResponseNotFound

def my_view(request):
    # ...
    if foo:
        return HttpResponseNotFound('<h1>Page not found</h1>')
    else:
        return HttpResponse('<h1>Page was found</h1>')

8.2.4. Status Code

from django.http import HttpResponse

def my_view(request):
    # do something
    return HttpResponse(status=201)