Take a moment to admire the fine web application we've made so far-now let's break it! Let's deliberately introduce a Python error into our views.py
file by commenting out the offset = int(offset)
lines in the hours_ahead
view:
def hours_ahead(request, offset): # try: # offset = int(offset) # except ValueError: # raise Http404() dt = datetime.datetime.now() + datetime.timedelta(hours=offset) html = "<html><body>In %s hour(s), it will be %s. </body></html>" % (offset, dt) return HttpResponse(html)
Load up the development server and navigate to /time/plus/3/
. You'll see an error page with a significant amount of information, including a TypeError message displayed at the very top: unsupported type for timedelta hours component: str (
Figure 2.3).
Figure 2.3: Django's error page
What happened? Well, the datetime.timedelta
function expects the hours
parameter...