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

前言

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

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')

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • 解决django前后端分离csrf验证的问题

    第一种方式ensure_csrf_cookie 这种方方式使用ensure_csrf_cookie 装饰器实现,且前端页面由浏览器发送视图请求,在视图中使用render渲染模板,响应给前端,此时这个渲染模板的视图函数上要加上这个装饰器 这种方式保证了模板返回时,前端接收到的响应中有csrftoken这个cookie,方法见代码. 以上方法并没有严格意义的前后分离,如果模板中有form表单,可以直接在模板中添加{% csrf_token %}. 第二种方式 前后完全分离,前端页面直接通过获取静态文

  • Django中ajax发送post请求 报403错误CSRF验证失败解决方案

    前言 今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败:先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了:很显然,用ajax发送post请求这样就白搭了: 文末已经更新更简单的方法,上面的略显麻烦 上网上查了一下,看了几个别人的博客,才知道官网也早有说明解决办法,大致流程就是: 就是新建一个JavaScript文件,然后把网上给的代码粘贴进去,然后在你使用ajax的页面把它引入一下:当然,如果你在网上

  • django中使用jquery ajax post数据出现403错误的解决办法(两种方法)

    在django中,使用jquery ajax post数据,会出现403的错误 方法一: 如果用jQuery来处理ajax的话,Django直接送了一段解决问题的代码.把它放在一个独立的js文件中,在html页面中都引入即可.注意这个js文件必须在jquery的js文件引入之后,再引入即可 $(document).ajaxSend(function(event, xhr, settings) { function getCookie(name) { var cookieValue = null;

  • Django csrf 验证问题的实现

    关于 csrf 的基本了解 百度百科:CSRF(Cross-site request forgery)跨站请求伪造,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用.通过伪装来自受信任用户的请求来利用受信任的网站. 简单来说就是攻击者盗用你的身份,以你的名义来发送恶意请求.比如说用户通过账号密码访问了网站A,A网站将一些cookie信息保存在浏览器中实现用户状态行为跟踪.这时用户又打开了B网站,B网站返回了一些恶意代码,并请求访问A.这样浏览器就会携带cookie以用户的权限访问A网站并执

  • django使用ajax post数据出现403错误如何解决

    本文通过两种方法给大家介绍在django中,使用jquery ajax post数据,会出现403的错误,具体内容请看下文. 方法一: 如果用jQuery来处理ajax的话,Django直接送了一段解决问题的代码.把它放在一个独立的js文件中,在html页面中都引入即可.注意这个js文件必须在jquery的js文件引入之后,再引入即可 $(document).ajaxSend(function(event, xhr, settings) { function getCookie(name) {

  • django在接受post请求时显示403forbidden实例解析

    本文研究的主要是django在接受post请求时显示403forbidden时的处理方法,具体代码如下. 最近在做一个项目需要用到Django框架 在测试Django的时候发现一个问题,就是按照一般教程设置好URL的mapping之后,使用get请求总能得到正确的回应,但是在使用post请求时,却根本无法得到请求,会显示403forbidden: Starting development server at http://127.0.0.1:8000/ Quit the server with

  • django+js+ajax实现刷新页面的方法

    本文实例讲述了django+js+ajax实现刷新页面的方法.分享给大家供大家参考,具体如下: 在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通过页面来操作服务器.这样可以将服务器的维护工作暴漏在更加友好的界面操作,而非通过SecureCRT去敲指令.而且还能提供给策划运维人员来处理一些常规的事情. 这里将会讲解一个非常小的知识点: ① js如何发起一次请求 ② django如何响应请求 ③ js接收到响应如何区域刷新页面 js部分 我们先在html中定

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

    前言 网上的做法基本都是下面的代码 return HttpResponseForbidden() 试了一下,效果一般,没有异常页面显示,最终显示的是浏览器的异常页面,如下图: 设置方法如下: 如果要想让服务器截获异常并且显示错误页可以用下面的方式: id = request.GET.get('id', '') timestamp = request.GET.get('timestamp', '') accesskey = request.GET.get('accesskey', '') if t

  • 优雅地在Java 8中处理异常的方法详解

    前言 Java 8 引入的流 (Stream) API 和 lambda 表达式为我们打开了新世界的大门,自此之后我们也可以在 Java 中进行函数式编程了.然而,在实际工作中,许多小伙伴并不知道如何正确的在 lambda 中处理异常,今天就来给大家讲解一下. 小编给大家推荐一个Java技术交流群:937053620!群内提供设计模式.spring/mybatis源码分析.高并发与分布式.微服务.性能优化,面试题整合文档等免费资料!给大家提供一个交流学习的平台! 我们都知道,Java 异常分为检

  • 对python tkinter窗口弹出置顶的方法详解

    如果想要python 的tkinter窗口置顶,加上下面两句即可实现root窗口的置顶显示,可以用于某些程序的消息提示,能够弹出到桌面显示 root = Tk() root.wm_attributes('-topmost',1) 以上这篇对python tkinter窗口弹出置顶的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Javascript摸拟自由落体与上抛运动原理与实现方法详解

    本文实例讲述了Javascript摸拟自由落体与上抛运动原理与实现方法.分享给大家供大家参考,具体如下: JavaScript 代码 //**************************************** //名称:Javascript摸拟自由落体与上抛运动! //作者:Gloot //邮箱:glootz@gmail.com // QQ:345268267 //网站:http://www.cnblogs.com/editor/ //操作:在页面不同地方点几下 //*********

  • Django框架实现分页显示内容的方法详解

    本文实例讲述了Django框架实现分页显示内容的方法.分享给大家供大家参考,具体如下: 分页 1.作用 数据加载优化 2.前端引入bootstrap样式: {# 引入bootstrap样式的cdn资源 #} <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet">

  • python中异常捕获方法详解

    在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序如果发生了异常该怎么办,try-except这个功能其实很多入门书籍中都放到了高级篇幅里,在入门的时候一般不会讲这个使用,尤其是作为运维人员,如果你经常写shell,转到python后估计也很少使用这个功能,这功能我觉得说明了shell和python的一个重要区别,因为python是一门真正的编程语言,像其它的编程语言php,java等都会提供异常捕获功能,

  • java异常继承何类,运行时异常与一般异常的区别(详解)

    一.基本概念 Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类. Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题.大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java

  • Java 如何优雅的抛出业务异常

    记得上学的时候学习英语,每个英语老师说到英语翻译的时候都会说英语翻译要做到"信.达.雅".如今做了一名程序员竟然体会我还是想用这三种境界来要求自己,恰逢自己现在所做之项目偏业务,代码的优雅显得格外重要.所以我就想写点这方面的东西,今天就先来说说如何优雅的抛出业务异常.代码千千万,只希望对自己和对大家有所帮助. 针对java开发者而言,异常的重要性不言而喻,这里也不再赘述.今天主要说说在业务中利用异常处理机制来实现业务异常的优雅提示. 首先,我们定义一个异常编码接口 public int

  • Spring应用抛出NoUniqueBeanDefinitionException异常的解决方案

    前言 我们在开发Spring应用时可能会不小心注入两个相同类型的Bean,比如实现了两个相同Service接口的类,示例伪代码如下: interface SampleService {   String getName(); } class ServiceA implements SampleService{    String getName(){      return "john";    } } class ServiceB implements SampleService{

  • 解决python3捕获cx_oracle抛出的异常错误问题

    最近一直在用python写点监控oracle的程序,一直没有用到异常处理这一块,然后日常监控中一些错误笼统的抛出数据库连接异常,导致后续处理的时候无法及时定位问题. 于是早上抽点时间看了下python3关于cx_oracle的异常处理形式. 其实,我只是想在python抛出oracle错误的时候,捕获到具体ora-信息. 写法很简单,这里记录下,以备后用. try: oracle_check(dbname) except cx_Oracle.DatabaseError as msg: print

随机推荐