django是如何处理404异常的

当在django的view中引发一个Http404异常之后,Django会加载一个处理404错误的特殊view。它在你的根URLconf中查找处理404错误的handler404(并且只能在根URLconf中查找),404 view的本身和其他view一样,没什么特别的。

通常不需要写404view,如果没有设置handler404,内置的django.views.defaults.page_not_found()会被默认调用。在这种情况下,你可以在模板的根目录下创建一个404.html文件。对所有出现的404错误,默认的404 view将会使用这个文件作为模板。如果settings里面的DEBUG设置为False,并且不创建404.html文件的话,会出现一个Http500错误,所以创建一个404.html模板文件是很有必要的。如果DEBUG设置为True,那么404view将不会被用到,因此404.html模板也不会被渲染,取而代之的将是浏览器上出现的traceback错误。在django的URLconf中无法匹配任何一个正则表达式时也会调用404view

原文地址:https://www.cnblogs.com/andy071001/p/2951655.html