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中的readline()方法的使用
May 24 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 Python
Python正则表达式完全指南
May 25 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
python SVM 线性分类模型的实现
Jul 19 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
python实现KNN分类算法
Oct 16 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
Python networkx包的实现
Feb 14 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
Terran魔法科技
2020/03/14 星际争霸
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
PHP实现简易图形计算器
2020/08/28 PHP
学习ExtJS Column布局
2009/10/08 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
node后端服务保活的实现
2019/11/10 Javascript
Python 调用Java实例详解
2017/06/02 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
pycharm安装和首次使用教程
2018/08/27 Python
python实现一组典型数据格式转换
2018/12/15 Python
在django中,关于session的通用设置方法
2019/08/06 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
详解Python多线程下的list
2020/07/03 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
战略合作协议书范本
2014/04/18 职场文书
单位工作证明
2014/10/07 职场文书
企业法律事务工作总结
2015/08/11 职场文书
Pandas 稀疏数据结构的实现
2021/07/25 Python