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文档生成工具pydoc使用介绍
Jun 02 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
python 字典访问的三种方法小结
Dec 05 Python
Python连接字符串过程详解
Jan 06 Python
python实现图像全景拼接
Mar 27 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 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解析mht文件转换成html的实例
2017/03/13 PHP
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
python虚拟环境virtualenv的使用教程
2017/10/20 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python+tkinter实现学生管理系统
2019/08/20 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
python TCP包注入方式
2020/05/05 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
python wsgiref源码解析
2021/02/06 Python
python openpyxl模块的使用详解
2021/02/25 Python
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
汽车销售顾问求职自荐信
2014/01/01 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
介绍信的格式
2015/01/30 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server