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 Json序列化与反序列化的示例
Jan 31 Python
python线程池threadpool使用篇
Apr 27 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
python爬取网易云音乐评论
Nov 16 Python
python绘制直方图和密度图的实例
Jul 08 Python
Python Django Cookie 简单用法解析
Aug 13 Python
python 有效的括号的实现代码示例
Nov 11 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
Tensorflow 实现释放内存
Feb 03 Python
五种Python转义表示法
Nov 27 Python
python爬虫框架feapde的使用简介
Apr 20 Python
pytorch Dropout过拟合的操作
May 27 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来自动调用不同服务器上的flash
2006/10/09 PHP
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
深入解析php中的foreach问题
2013/06/30 PHP
如何在PHP中使用数组
2020/06/09 PHP
JS高级笔记
2011/07/13 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
京东优选小程序的实现代码示例
2020/02/25 Javascript
Python贪心算法实例小结
2018/04/22 Python
基于python实现模拟数据结构模型
2020/06/12 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
怎样比较两个类型为String的字符串
2016/08/17 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
servlet面试题
2012/08/20 面试题
工业设计毕业生自荐信
2014/04/13 职场文书
留学顾问岗位职责
2014/04/14 职场文书
个人评语大全
2014/05/04 职场文书
干部考核工作总结2015
2015/07/24 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL