django的403/404/500错误自定义页面的配置方式

作者:皓阳当空 时间:2023-01-19 06:44:40 

要实现标题的功能,总共分四步:

1.创建html错误页

2.配置settings

3.编写视图

4.配置url

我的开发环境:

django1.10.3

python2.7.12

前期工作

创建项目及app

$ django-admin.py startproject Test
...
$ python manage.py startapp myapp
...

1.创建html错误页

在Test目录下,创建templates文件夹

在文件夹下创建404.html/403.html/500.html文件

2.配置settings

配置tamplates文件路径、关闭Debug、配置allowrd_hosts


DEBUG = False # 关闭Debug
...
TEMPLATES = [
 {
   ...
   'DIRS': ['templates/'], # 配置tamplates文件路径    
   ...
 },
]
...
ALLOWED_HOSTS = [
 '192.168.1.12', # 配置allowrd_hosts
]

3.编写视图

在myapp下编写views.py


from django.shortcuts import render

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')

4.配置url


...
from myapp.views import *

handler403 = permission_denied
handler404 = page_not_found
handler500 = page_error
...

ok!运行一下,看看结果!

补充知识:Django 漂亮的出错页面

django的403/404/500错误自定义页面的配置方式

例子展示 Django 的出错页面。 我们来花些时间看一看这个出错页,了解一下其中 给出了哪些信息。

以下是值得注意的一些要点:

在页面顶部,你可以得到关键的异常信息: 异常数据类型、异常的参数 (如本例中的 "unsupported type" )、在哪个文件中引发了异常、出错的行号等等。

django的403/404/500错误自定义页面的配置方式

在关键异常信息下方,该页面显示了对该异常的完整 Python 追踪信息。 这类似于你在 Python 命令行解释器中获得的追溯信息,只不过后者更具交互性。 对栈中的每一帧,Django 均显示了其文件名、函数或方法名、行号及该行源代码。

django的403/404/500错误自定义页面的配置方式

点击该行代码 (以深灰色显示),你可以看到出错行的前后几行,从而得知相关上下文情况。

django的403/404/500错误自定义页面的配置方式

点击栈中的任何一帧的“Local vars”可以看到一个所有局部变量的列表,以及在出错 那一帧时它们的值。 这些调试信息相当有用。

django的403/404/500错误自定义页面的配置方式

注意"Traceback"下面的"Switch to copy-and-paste view"文字。 点击这些字,追溯会 切换另一个视图,它让你很容易地复制和粘贴这些内容。 当你想同其他人分享这些异常 追溯以获得技术支持时(比如在 Django 的 IRC 聊天室或邮件列表中),可以使用它。

django的403/404/500错误自定义页面的配置方式

你按一下下面的"Share this traceback on a public Web site"按钮,它将会完成这项工作。 点击它以传回追溯信息至http://www.dpaste.com/,在那里你可以得到一个单独的URL并与其他人分享你的追溯信息。

接下来的”Request information”部分包含了有关产生错误的 Web 请求的大量信息: GET 和 POST、cookie 值、元数据(象 CGI 头)。

django的403/404/500错误自定义页面的配置方式

Request信息的下面,“Settings”列出了 Django 使用的具体配置信息。

Django 的出错页某些情况下有能力显示更多的信息,比如模板语法错误。

来源:https://blog.csdn.net/apple9005/article/details/54600154

标签:django,403,404,500
0
投稿

猜你喜欢

  • 在Pycharm中设置默认自动换行的方法

    2022-09-10 04:29:00
  • Python简单生成随机姓名的方法示例

    2023-04-26 19:35:58
  • Python走楼梯问题解决方法示例

    2021-07-07 22:57:51
  • PHP实现sha-256哈希算法实例代码

    2023-05-25 01:05:23
  • 详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程

    2022-04-19 21:35:31
  • Python教程之生产者消费者模式解析

    2021-03-07 17:55:53
  • 小试Python中的pack()使用方法

    2021-02-03 06:00:43
  • mysql 动态执行存储过程语句

    2024-01-27 01:54:38
  • 使IE浏览器支持PNG格式图片的透明效果

    2008-02-02 16:20:00
  • 通向MySQL神秘王国的图形化之路

    2008-12-08 13:43:00
  • asp.net和php的区别点总结

    2024-06-07 15:45:59
  • [组图]手把手教你制作ASP留言本

    2007-09-22 09:32:00
  • Go语言判断指定文件是否存在的方法

    2024-05-21 10:21:38
  • 隐藏并修改文件的最后修改时间的asp-webshell

    2009-02-28 13:31:00
  • 多个datatable共存造成多个表格的checkbox都被选中

    2024-05-11 09:18:42
  • Windows下实现pytorch环境搭建

    2022-03-12 05:11:03
  • PHP开发实现快递查询功能详解

    2023-11-24 12:19:39
  • 创意方法杂谈

    2009-05-13 12:53:00
  • django中操作mysql数据库的方法

    2024-01-18 13:37:55
  • 对比分析BN和dropout在预测和训练时区别

    2022-09-05 11:46:55
  • asp之家 网络编程 m.aspxhome.com