django的403/404/500错误自定义页面的配置方式
作者:皓阳当空 发布时间:2023-01-19 06:44:40
要实现标题的功能,总共分四步:
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 的出错页面。 我们来花些时间看一看这个出错页,了解一下其中 给出了哪些信息。
以下是值得注意的一些要点:
在页面顶部,你可以得到关键的异常信息: 异常数据类型、异常的参数 (如本例中的 "unsupported type" )、在哪个文件中引发了异常、出错的行号等等。
在关键异常信息下方,该页面显示了对该异常的完整 Python 追踪信息。 这类似于你在 Python 命令行解释器中获得的追溯信息,只不过后者更具交互性。 对栈中的每一帧,Django 均显示了其文件名、函数或方法名、行号及该行源代码。
点击该行代码 (以深灰色显示),你可以看到出错行的前后几行,从而得知相关上下文情况。
点击栈中的任何一帧的“Local vars”可以看到一个所有局部变量的列表,以及在出错 那一帧时它们的值。 这些调试信息相当有用。
注意"Traceback"下面的"Switch to copy-and-paste view"文字。 点击这些字,追溯会 切换另一个视图,它让你很容易地复制和粘贴这些内容。 当你想同其他人分享这些异常 追溯以获得技术支持时(比如在 Django 的 IRC 聊天室或邮件列表中),可以使用它。
你按一下下面的"Share this traceback on a public Web site"按钮,它将会完成这项工作。 点击它以传回追溯信息至http://www.dpaste.com/,在那里你可以得到一个单独的URL并与其他人分享你的追溯信息。
接下来的”Request information”部分包含了有关产生错误的 Web 请求的大量信息: GET 和 POST、cookie 值、元数据(象 CGI 头)。
Request信息的下面,“Settings”列出了 Django 使用的具体配置信息。
Django 的出错页某些情况下有能力显示更多的信息,比如模板语法错误。
来源:https://blog.csdn.net/apple9005/article/details/54600154
猜你喜欢
- 首先声明,在这组里我是个绝对的菜鸟。再次声明,小爝这个菜鸟在“网页设计”这个圈里混了快1年了。 摘要:我知道我有多少底,所以我在总结我的成长
- 最简单的条件语句:if expression: expr_true_suite如上,if是关键字,expression是条件表
- 本文给大家介绍Python文件处理相关知识,具体内容如下所示:1.文件的常见操作文件是日常编程中常用的操作,通常用于存储数据或应用系统的参数
- 1.使用str.split()方法可以使用pandas 内置的 str.split() 方法实现分割字符串类型的数据,并将分割结果写入Dat
- HTML文件 一、 设置编码UTF-8对于中文网页需要使用<meta charset="utf-8">声明编
- 一,VSCODE配置Markdown 打开左侧的extensions,或者使用 Ctrl+Shift+X,输入Markdown(1
- 要求:实现mysql中对同个字段进行多个匹配值的模糊查询先看数据表:目标是在user表中,匹配出姓氏在family_info表中的记录。方法
- 导语每年的节假日一到,大家头疼的总时同一个问题:你买到回家的票了吗?尤其是大型的节日:”比如国庆、春节......&am
- 前言&最近因为一些原因,没有更博客,昨天老师布置了一个作业,用vue实现增删改查功能,想想这也不难,就做一下试试吧。因为自己写的样式
- 背景最近在搞爬虫,很多小组件里面都使用了 Python 的 requests 库,很好用,很强大。但最近发现很多任务总是莫名其妙的卡住,不报
- <script> Array.prototype.swap = function(i, j) { var temp = this
- python对函数库的引用方式1、import <库名> 例如:import turtle 如果需要使用库函数中的函数,需要使用
- Json模块dumps、loads、dump、load函数介绍1、json.dumps() json.dumps()用于将dict
- 实例如下所示:import numpy as npW_val, b_val = sess.run([weights_tensor, bias
- 很久之前用到的,现在整理在这,里面一些代码来源于网上,不过有些bug已被我修改了。1.查询结果转XMLDECLARE @ParameterS
- 今天无意在坛子里看到这样一个求救帖(这里),看了一下,感觉问题比较好解决。但是问题背后的问题却引起了我的反思。把他的页面整理一下看看(为了便
- 前言大家应该都有所体会,对于字符串型的IP存入数据库中,实在是个即浪费空间又浪费性能的家伙,所以可爱的人们想出来将IP转换为整型存储。MyS
- 引言最近遭遇了绑定手机号相关的压测需求,有了手机号登录的经验和测试数据,这次算起来比较简单。最重要的是难点就是要求开发配合调整配置已经在上一
- 什么是M2det目标检测算法一起来看看M2det的keras实现吧,顺便训练一下自己的数据。常见的特征提取方法如图所示有SSD形,FPN形,
- 在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段