在django中使用post方法时,需要增加csrftoken的例子


Posted in Python onMarch 13, 2020

从百度查到在django中,使用post方法时,需要先生成随机码,以防止CSRF(Cross-site request forgery)跨站请求伪造,并稍加修改:

注:这是一个js文件,需要引入到html模板中:<script src="/static/javascript/post_need_csrftoken.js"></script>

这样做比使用{% csrf_token %}方便

$(function () {
  $.ajaxSetup({
    headers: { "X-CSRFToken": getCookie("csrftoken") }
  });
});


    // 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码
    function getCookie(name)
    {
      var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
      /*
        上面这句话相当于:
      var arr;
      var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
       */
      if(arr=document.cookie.match(reg))
        return decodeURI(arr[2]);  //ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,
                      // 因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。
      else
        return null;
    }

补充知识:Django解决前端/客户端POST失败提示csrf_tokenxxx的问题

解决:把settings.py里把MIDDLEWARE中的

django.middleware.csrf.CsrfViewMiddleware

删除掉就好了

如果你不想删除,并且你是web端的话,在form表单里加一句 {%csrf_token%} 就好了

<form>
  {%csrf_token%}
  <!-- 其它代码 -->
</form>

这个CRSF主要也是起一种保护验证的作用,看个人需要来保留吧

如果是安卓或者其它端,建议之间采取前者把那行代码删掉就行了

以上这篇在django中使用post方法时,需要增加csrftoken的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python MySQLdb Linux下安装笔记
May 09 Python
实例说明Python中比较运算符的使用
May 13 Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 Python
Python简单读取json文件功能示例
Nov 30 Python
对Python 语音识别框架详解
Dec 24 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
Apache部署Django项目图文详解
Jul 30 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 #Python
详解用Python进行时间序列预测的7种方法
Mar 13 #Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 #Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 #Python
Django choices下拉列表绑定实例
Mar 13 #Python
django model object序列化实例
Mar 13 #Python
浅析python标准库中的glob
Mar 13 #Python
You might like
php debug 安装技巧
2011/04/30 PHP
json跟xml的对比分析
2008/06/10 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python3.x实现base64加密和解密
2019/03/28 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
Sql面试题
2013/03/20 面试题
你们项目是如何进行变更控制的
2015/08/26 面试题
小学生春游活动方案
2014/08/20 职场文书
教师师德表现自我评价
2015/03/05 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
三下乡活动心得体会
2016/01/23 职场文书
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记