时间:2021-05-22
在开发网站的过程中,404,500错误,是不可避免产生的。
一旦产生了这种错误,很多可以通过web server 来处理。比如使用 apache 的定义
或者nginx 的定义。都可以定向处理。如果单纯在django里面可以处理吗?肯定是可以的,django提供了相应的处理方式,只要在django里
起步
面定义了,无论你今后部署在apache下或者是nginx下,都是生效的。
要想自定义错误页面,需要关闭调试模式DEBUG = False ,因为调试模式的错误页面是开发下会显示错误信息的。
有两种方法可以实现自定义的错误页面。
方法一:创建特定命名的模板文件
这是一种非常简单的方式。在项目模板文件夹templates 中创建命名为404.html 的模板文件即可。
这个方式是其实是借用了 Django 的模板查找规则进行的。源码在django.views.defaults.py 中:
ERROR_404_TEMPLATE_NAME = '404.html'def page_not_found(request, exception, template_name=ERROR_404_TEMPLATE_NAME): ...总的来说,方法一不需要设路由,只要新建规定名称的模板就能生效了。
方法二:设置句柄
如果需要更个性化的错误页面,不需要拘泥于特定的模板文件名,可以重新设置句柄,具体是在urls.py 中设置:
# urls.pydef page_not_found(request, exception): return render(request, 'your_404_filename.html')handler404 = page_not_foundurlpatterns = [ ...]除了能捕获不存在路由地址,还能捕获视图中raise Http404('message') 抛出的异常。
哪些错误页面可以配置
具体能自定义错误页面的有 4 中状态码:
# django.views.defaults.pyERROR_404_TEMPLATE_NAME = '404.html'ERROR_403_TEMPLATE_NAME = '403.html'ERROR_400_TEMPLATE_NAME = '400.html'ERROR_500_TEMPLATE_NAME = '500.html'# django.conf.urls.__init__.pyhandler400 = defaults.bad_requesthandler403 = defaults.permission_deniedhandler404 = defaults.page_not_foundhandler500 = defaults.server_error到此这篇关于Django 自定义404 500等错误页面的实现的文章就介绍到这了,更多相关Django自定义404 500错误页面内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了ThinkPHP中自定义错误页面和提示页面的方法。分享给大家供大家参考。具体实现方法如下:在ThinkPHP中有两个方法时提示错误页面_404('
一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可。但是在IIS7.0及以上时,设置完404错误页后,会发现
一、通过自定义404页面解决死链问题。当访问站内页面出错时,利用自定义404页面告诉蜘蛛此链接有损坏,并且不会出现大量的404错误返回码,具体设置大家基本都懂。
本文实例讲述了Laravel5.1自定义500错误页面的方法。分享给大家供大家参考,具体如下:Laravel5.1中500错误是程序错误,程序错误一定是系统自带
不知道大家对千篇一律的404NotFound的错误页面是否感到腻歪了?其实通过很简单的配置就能够让SpringMVC显示您自定义的404NotFound错误页面