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安装第三方库的3种方法

【方法一】: 通过setuptools来安装python模块 首先下载 http://peak.telecommunity.com/dist/ez_setup.py NOTE: 最好下载...

Python BS4库的安装与使用详解

Python BS4库的安装与使用详解

Beautiful Soup 库一般被称为bs4库,支持Python3,是我们写爬虫非常好的第三方库。因用起来十分的简便流畅。所以也被人叫做“美味汤”。目前bs4库的最新版本是4.60。...

浅谈使用Python内置函数getattr实现分发模式

本文研究的主要是使用Python内置函数getattr实现分发模式的相关问题,具体介绍如下。 getattr 常见的使用模式是作为一个分发者。举个例子,如果你有一个程序可以以不同的格式输...

python3.5实现socket通讯示例(TCP)

python3.5实现socket通讯示例(TCP)

TCP连接: tcp是面向连接的一个协议,意味着,客户端和服务器开发发送数据之前,需要先握手创建一个TCP连接。TCP连接的一端与客户端套接字相互联系,另一端与服务器套接字相联系。当创建...

Python中字典映射类型的学习教程

字典是python语言中唯一的映射类型,用花括号{}表示,一个字典条目就是一个键值对,方法keys()返回字典的键列表,values()返回字典的值列表,items()返回字典的键值对列...