自定义Django 404页面和Django调试页面

时间:2011-09-21 05:44:03

标签: django apache http-status-code-404 django-settings

我正在部署Django网页,我喜欢Django Debug 404页面和Django页面,当有python错误时。但是,这些不适合上网的网页。所以我做了一个自定义的404页面。但是,对我和我的IP地址,我想仍然有Django Debug页面出现。如果我将Debug设置为false,有没有这样做呢?

1 个答案:

答案 0 :(得分:6)

您可以通过在urlconf中设置handler404来定义自己的404s处理程序视图。默认的handler404是django.views.defaults.page_not_found,它基本上只呈现404.html模板。

如果你把它放在你的urlconf中,它会显示某个IP的“技术”404响应(漂亮的黄色页面),并使用Django默认的404生产视图用于其他IP:

import sys
from django.views.debug import technical_404_response
from django.views.defaults import page_not_found

def handler404(request):
    if request.META['REMOTE_ADDR'] == 'YOUR_IP_ADDRESS':
        exc_type, exc_value, tb = sys.exc_info()
        return technical_404_response(request, exc_value)
    else:
        return page_not_found(request)

我建议你为404错误设置正确的日志记录。 Django可以通过电子邮件或日志记录生产环境中发生的404和例外情况,以了解您可以指定的规则。

请参阅error reportinglogging上的文档(1.3中添加了日志框架)