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使用paramiko实现远程拷贝文件的方法
Apr 18 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
Python SQLite3简介
Feb 22 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
Python 元类实例解析
Apr 04 Python
python实现微信自动回复机器人功能
Jul 11 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
Dec 13 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
Python实现CAN报文转换工具教程
May 05 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
python 常用的异步框架汇总整理
Jun 18 Python
Django+Nginx+uWSGI 定时任务的实现方法
Jan 22 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
基于mysql的论坛(7)
2006/10/09 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP中overload与override的区别
2017/02/13 PHP
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
跟老齐学Python之开始真正编程
2014/09/12 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
python实现宿舍管理系统
2019/11/22 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
外贸英语毕业生自荐信
2013/11/14 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
投标承诺函范文
2015/01/21 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
七一表彰大会简报
2015/07/20 职场文书
孙振耀退休感言
2015/08/01 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python