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引用(import)文件夹下的py文件的方法
Aug 26 Python
Python中使用select模块实现非阻塞的IO
Feb 03 Python
Php多进程实现代码
May 07 Python
Python检测数据类型的方法总结
May 20 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
详解python中的异常和文件读写
Jan 03 Python
Python 机器学习工具包SKlearn的安装与使用
May 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
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python解释执行原理分析
2014/08/22 Python
Python标准库内置函数complex介绍
2014/11/25 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
python写入文件自动换行问题的方法
2019/07/05 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
python 魔法函数实例及解析
2019/09/25 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
宠物店的创业计划书范文
2014/01/11 职场文书
初三学习决心书
2014/03/11 职场文书
学生个人自我鉴定
2014/03/26 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
大学生求职自荐信
2015/03/24 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
5道关于python基础 while循环练习题
2021/11/27 Python
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python