如何自定义Django中的404异常页面

Posted on 2012 年 4 月 6 日 by admin

Django框架捕获到404异常时,会交给django.views.defaults.page_not_found这个函数处理,你唯一需要做的是在你的模板文件根目录下面创建一个404.html的模板页面。大部分情况下这个缺省的函数已经满足我们的需求了,但是如果你需要自定义处理404异常的函数,你需要在url配置文件中增加下面的内容来指定你的自定义函数:

handler404 = ’mysite.views.my_custom_404_view’

Django会在后台捕获404异常,并交给handler404 处理。我们的url配置文件中缺省都包含下面的引用:

from django.conf.urls.defaults import *

其中的django/conf/urls/defaults.py包含了handler404是指向’django.views.defaults.page_not_found’的。因此,我们在处理404异常时需要注意以下几个方面:

1. 如果你需要使用缺省的404异常处理函数,你仍然要在模板目录的根目录下创建404.html模板文件。缺省的视图函数会给这个模板文件传递一个request_path参数,它代表了404错误页面的路径;

2. 404视图函数会给模板页面传递一个RequestContext对象,它可以访问你在settings.py中定义的TEMPLATE_CONTEXT_PROCESSORS中的变量;

3. 如果你在settings.py中设置 DEBUG=True,那么404页面是不会被使用的,你看到的将是调试堆栈信息。

通过如何自定义Django中的404异常页面 | 蛇果网.

- EOF -