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运行的17个时新手常见错误小结
Aug 07 Python
跟老齐学Python之类的细节
Oct 13 Python
python字符串替换的2种方法
Nov 30 Python
Python实现Youku视频批量下载功能
Mar 14 Python
python执行使用shell命令方法分享
Nov 08 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
Feb 11 Python
pytorch实现手写数字图片识别
May 20 Python
Python 发送SMTP邮件的简单教程
Jun 24 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的ASP防火墙
2006/10/09 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
React 组件间的通信示例
2018/06/14 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
Django实现自定义404,500页面教程
2017/03/26 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python常用的json标准库
2019/02/19 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
python二维图制作的实例代码
2020/12/03 Python
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
探矿工程师自荐信
2014/01/24 职场文书
安全生产标语大全
2014/10/06 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
社会实践活动总结格式
2015/05/11 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android