Django自定义全局403、404、500错误页面

自定义模板

403




    
    403-禁止访问


HTTP 403 - 禁止访问


404




    
    404-无法找到文件


HTTP 404- 无法找到文件


500




    
    500-服务器错误


HTTP 500 - 内部服务器错误


编写视图

# 全局403、404、500错误自定义页面显示
def page_not_found(request):
    return render(request, '404.html')


def page_error(request):
    return render(request, '500.html')


def permission_denied(request):
    return render(request, '403.html')

修改url

from .views import page_error, page_not_found, permission_denied


urlpatterns = [
    # ...
]

# 定义错误跳转页面
handler403 = permission_denied
handler404 = page_not_found
handler500 = page_error

尝试使用无权限用户访问,看是否会显示该页面

如果不对,修改settings.py中的DEBUG的值

DEBUG = False

注:若是DEBUG=True,有些情况下则不会生效

Http404抛出异常

raise Http404('资源不存在,请访问 xxx 查看')

模板中捕获异常信息

使用{{ exception }}即可捕获异常信息,转换为html代码{{ exception|safe }},可以根据这些代码中的id等,得到跳转的链接,参考


{% load static %}



    
    404-无法找到文件
    










后端

raise Http404('访问资源不存在,即将跳转 {}'.format('blog.starmeow.cn'))

那么当出现404错误是,jquery就获取该id的值,如果是//或者是http开头,表明可能是个链接(后端请限制格式),前端直接跳转

你可能感兴趣的:(#,Django)