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


Posted in Python onMay 21, 2020

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

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 的出错页某些情况下有能力显示更多的信息,比如模板语法错误。

以上这篇django的403/404/500错误自定义页面的配置方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
Python生成器以及应用实例解析
Feb 08 Python
Python装饰器用法实例总结
May 26 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
对numpy中shape的深入理解
Jun 15 Python
Python列表list排列组合操作示例
Dec 18 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
python代码如何注释
Jun 01 Python
Python turtle库的画笔控制说明
Jun 28 Python
python单元测试之pytest的使用
Jun 07 Python
python 3.8.3 安装配置图文教程
May 21 #Python
Python中的xlrd模块使用原理解析
May 21 #Python
python中sklearn的pipeline模块实例详解
May 21 #Python
Python使用re模块验证危险字符
May 21 #Python
Django 解决新建表删除后无法重新创建等问题
May 21 #Python
python 解决Fatal error in launcher:错误问题
May 21 #Python
django实现日志按日期分割
May 21 #Python
You might like
PHP垃圾回收机制简单说明
2010/07/22 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
php实现的日历程序
2015/06/18 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
js正则表达式的使用详解
2013/07/09 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
web打印小结
2017/01/11 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python中的localtime()方法使用详解
2015/05/22 Python
Python实现多属性排序的方法
2018/12/05 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python——全排列数的生成方式
2020/02/26 Python
个人简历自我评价
2014/01/06 职场文书
单位领导证婚词
2014/01/14 职场文书
文案策划求职信
2014/03/18 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
工程主管竞聘书
2015/09/15 职场文书
Python装饰器的练习题
2021/11/23 Python
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android