美文网首页
django自定义403/404/500错误

django自定义403/404/500错误

作者: Python野路子 | 来源:发表于2018-12-16 00:45 被阅读0次

1.将DEBUG=False,只有关闭debug才会调用错误处理函数。

  1. 主目录下urls.py中定义
# 定义错误跳转页面
from articles.views import permission_denied,page_not_found,page_error
handler403 = permission_denied   #403禁止访问
handler404 = page_not_found  #页面不存在
handler500 = page_error    #系统错误

3.自定义相关错误视图

def permission_denied(request,exception=None):
    #全局403处理函数
    from django.shortcuts import render_to_response
    response = render_to_response('error/403.html', {})
    response.status_code = 403
    return response

def page_not_found(request, exception=None):
    #全局404处理函数
    from django.shortcuts import render_to_response
    response = render_to_response('error/404.html', {})
    response.status_code = 404
    return response

def page_error(request,exception=None):
    #全局500处理函数
    from django.shortcuts import render_to_response
    response = render_to_response('error/500.html', {})
    response.status_code = 500
    return response

注意:刚开始我自定义上面处理函数,只接受了一个request参数,导致
DEBUG = True时为

image.png
为False时就成了500
image.png
那为啥404就变成了500呢,那可能原因就是出在404那导致系统错误,从而发生500错误。然后通过在技术群里面问其他大佬,提示查官方文档,原来少了个exception参数导致的,加上即可。
image.png

总结:

有问题还是先到官网多看看查找相关源头,说不定比在网上搜一整天效率高多了!

相关文章

网友评论

      本文标题:django自定义403/404/500错误

      本文链接:https://www.haomeiwen.com/subject/jsnzhqtx.html