django中使用CSRF出现403错误的解决办法

一.什么是 csrf ?

  简单的说,它的中文名叫做“跨域请求伪造。复杂的可以看这里

二.Django中如何使用csrf?

2.1新手的常犯错误

  如果你是初学Django,那你很可能会遇到这样一个问题——在前端用post请求传值的时候,莫名出现了以下错误…
这里写图片描述
1.上图中的箭头所指便是产生错误的主要原因——“CSRF验证失败,请求被丢弃”。
2.而蓝色框中的内容便是使用CSRF所要注意的几个地方。

  • 浏览器要开启cookies
  • ‘django.middleware.csrf.CsrfViewMiddleware’加到settings.py的MIDDLEWARE= [xxx]里面。
  • 要将{% csrf_token %}放入你的post表单中!
  • 后台的view中要使用 render()方法!

2.2发生403错误时的解决办法
  博主在遇到这个错误时,并没有仔细看注意事项。而是习惯性地百度了这个错误,看了一堆博客,仍然没有解决。最后认真看了注意事项,发现解决办法其实就在注意事项里面。(以下所述是正常使用csrf的方法,若想简便,可以直接屏蔽掉 csrf,不过不推荐屏蔽的方式。)
  2.2.1开启浏览器cookies
这里写图片描述
浏览器的cookie开启方式请自行度娘

  2.2.2添加配置
这里写图片描述
当然,这个设置一般在创建项目时就已经自动配置好了。

  2.2.3post表单中添加{% csrf_token %}
这里写图片描述

  2.2.4后台函数使用render()方法
这里写图片描述
注意:这里所指的函数不是处理你表单数据的函数,而是跳转到表单所在页面的函数!!!博主便是在最后一步摔了个“七荤八素”,不过最后想想也是怪自己笨,你不先给它一个值,后台又如何验证呢?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值