我正在部署Django网页,我喜欢Django Debug 404页面和Django页面,当有python错误时。但是,这些不适合上网的网页。所以我做了一个自定义的404页面。但是,对我和我的IP地址,我想仍然有Django Debug页面出现。如果我将Debug设置为false,有没有这样做呢?
答案 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 reporting和logging上的文档(1.3中添加了日志框架)