django主动抛出403异常的方法详解

yipeiwu_com6年前Python基础

前言

网上的做法基本都是下面的代码

return HttpResponseForbidden()

试了一下,效果一般,没有异常页面显示,最终显示的是浏览器的异常页面,如下图:

设置方法如下:

如果要想让服务器截获异常并且显示错误页可以用下面的方式:

id = request.GET.get('id', '')
timestamp = request.GET.get('timestamp', '')
accesskey = request.GET.get('accesskey', '')
 
if timestamp == '' or accesskey == '' or id == '':
 raise PermissionDenied

此时访问就会显示正常的错误页了,如下

django 错误页面定义方法:

urls.py加入如下代码:

handler403 = permission_denied
handler404 = page_not_found
handler500 = page_error

相关view代码:

# Create your views here.
def page_not_found(request):
 return HttpResponseRedirect('/static/error_pages/404.html')
 
 
def page_error(request):
 return HttpResponseRedirect('/static/error_pages/500.html')
 
 
def permission_denied(request):
 return HttpResponseRedirect('/static/error_pages/403.html')

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

python调用百度地图WEB服务API获取地点对应坐标值

本篇博客介绍如何使用Python调用百度地图WEB服务API获取地点对应坐标值,现有一系列结构化地址数据(如:北京市海淀区上地十街十号),目的是获取对应坐标值。 百度地图开发者平台路线规...

python ipset管理 增删白名单的方法

为方便用ipset 来管理防火墙,写了下面Ipset类来对Ip进行管理 #!/usr/bin/env python # coding: utf-8 import MySQLdb...

Python参数解析模块sys、getopt、argparse使用与对比分析

Python参数解析模块sys、getopt、argparse使用与对比分析

一些命令行工具的使用能够大大简化代码脚本的维护成本,提升复用性,今天主要是借助于python提供的几种主流的参数解析工具来实现简单的功能,主要是学习实践为主,这是新年伊始开工的第一篇,还...

Python字典的概念及常见应用实例详解

Python字典的概念及常见应用实例详解

本文实例讲述了Python字典的概念及常见应用。分享给大家供大家参考,具体如下: 字典的介绍 字典的概念 字典的创建 1. 我们可以通过{}、dict()来创...

windows系统中python使用rar命令压缩多个文件夹示例

复制代码 代码如下:#!/usr/bin/env python# Filename: backup_ver1.py import osimport time # 1. The files...