Django自定义404 500等错误页面的实现

  

在开发网站的过程中,404500错误,是不可避免产生的。
  一旦产生了这种错误,很多可以通过web服务器来处理,比如使用apache的定义
  或者nginx的定义。都可以定向处理。如果单纯在django里面可以处理吗?肯定是可以的,django提供了相应的处理方式,只要在django里

  

  

面定义了,无论你今后部署在apache下或者是nginx下,都是生效的。

  

要想自定义错误页面,需要关闭调试模式,DEBUG=False,因为调试模式的错误页面是开发下会显示错误信息的。

  

有两种方法可以实现自定义的错误页面。

  


  

  

这是一种非常简单的方式。在项目模板文件夹,模板中创建命名为,404。html的模板文件即可。

  

这个方式是其实是借用了Django的模板查找规则进行的。源码在,django.views.defaults.py中:

        ERROR_404_TEMPLATE_NAME=' 404. html '      def page_not_found(请求、异常template_name=ERROR_404_TEMPLATE_NAME):   …      之前      

总的来说,方法一不需要设路由,只要新建规定名称的模板就能生效了。

  


  

  

如果需要更个性化的错误页面,不需要拘泥于特定的模板文件名,可以重新设置句柄,具体是在,url。py中设置:

        # urls . py   def page_not_found(请求、异常):   返回渲染(请求,“your_404_filename.html”)      handler404=page_not_found      urlpattern=[   …   ]      之前      

除了能捕获不存在路由地址,还能捕获视图中,提高Http404(“信息”)抛出的异常。

  


  

  

具体能自定义错误页面的有4中状态码:

        # django.views.defaults.py   ERROR_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__.py   handler400=defaults.bad_request   handler403=defaults.permission_denied   handler404=defaults.page_not_found   handler500=defaults.server_error   之前      

到此这篇关于Django自定义404 500等错误页面的实现的文章就介绍到这了,更多相关Django自定义404 500错误页面内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

Django自定义404 500等错误页面的实现