Django自定义错误页面实现方式

作者:

文章目录
  • 需要修改settings.py文件中的两个配置: 将DEBUG设置为False,标识当前处于非调试模式 非调试模式下需要指定ALLOWED_HOSTS,这里将它简单地设置为[‘*’],代表允许所有的域名访问
  • 创建4个文件,分别命名为:404.html、400.html、403.html和500.html。可以知道,这些模板文件分别对应handler的4类错误码 这4个handler:
  • # 404 def page_not_found(request, exception, template_name=’error/404.html’): return render(request, template_name) # 500 # 与前三个视图定义不同,500错误:server_error只有两个参数 def server_error(request, template_name=’error/500.html’): return render(request, template_name)
  • 最后,还需要指定错误处理handler的入口。这需要在项目的urls.py文件中指定,而不是在应用的urls.py文件中指定: from post.views import page_not_found, server_error handler404 = page_not_found handler500 = server_error
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: django的403/404/500错误自定义页面的配置方式 Django自定义全局403、404、500错误页面的示例代码 Django 自定义404 500等错误页面的实现
  • 目录
    • 1.修改系统配置
    • 2.定义错误页面模板文件
    • 3.定义错误处理视图
    • 4.配置handler
    • 总结

    需要修改settings.py文件中的两个配置:

    1. DEBUG设置为False,标识当前处于非调试模式
    2. 非调试模式下需要指定ALLOWED_HOSTS,这里将它简单地设置为[‘*’],代表允许所有的域名访问

    创建4个文件,分别命名为:404.html、400.html、403.html和500.html。可以知道,这些模板文件分别对应handler的4类错误码

    这4个handler:

    # 404
    def page_not_found(request, exception, template_name='error/404.html'):
        return render(request, template_name)
    
    # 500
    # 与前三个视图定义不同,500错误:server_error只有两个参数
    def server_error(request, template_name='error/500.html'):
        return render(request, template_name)
    

    最后,还需要指定错误处理handler的入口。这需要在项目的urls.py文件中指定,而不是在应用的urls.py文件中指定:

    from post.views import page_not_found, server_error
    
    handler404 = page_not_found
    handler500 = server_error
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

    您可能感兴趣的文章:

    • django的403/404/500错误自定义页面的配置方式
    • Django自定义全局403、404、500错误页面的示例代码
    • Django 自定义404 500等错误页面的实现

    站内搜索