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 文件读写操作实例详解
Mar 12 Python
Python中的闭包详细介绍和实例
Nov 21 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
python实现提取百度搜索结果的方法
May 19 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
用matplotlib画等高线图详解
Dec 14 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
Python函数参数匹配模型通用规则keyword-only参数详解
Jun 10 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 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处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
Python中有趣在__call__函数
2015/06/21 Python
利用Python破解斗地主残局详解
2017/06/30 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
JAVA中的关键字有什么特点
2014/03/07 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
高一政治教学反思
2014/01/28 职场文书
满月酒主持词
2014/03/27 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
党员个人公开承诺书
2014/08/29 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers