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)