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进阶教程之循环对象
Aug 30 Python
python复制与引用用法分析
Apr 08 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
pandas 数据实现行间计算的方法
Jun 08 Python
Python 变量类型详解
Oct 10 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
Dec 03 Python
Django中使用MySQL5.5的教程
Dec 18 Python
python+OpenCV实现图像拼接
Mar 05 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
python 对xml解析的示例
Feb 27 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 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+DBM的同学录程序(2)
2006/10/09 PHP
php 生成饼图 三维饼图
2009/09/28 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python 用lambda函数替换for循环的方法
2018/06/09 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
打造完美自荐信
2014/01/24 职场文书
物流业务员岗位职责
2014/02/08 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
工作表扬信范文
2015/01/17 职场文书
教师节简报
2015/07/20 职场文书
法院执行局工作总结
2015/08/11 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
导游词之桂林
2019/08/20 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android