在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线程、进程和协程详解
Jul 19 Python
python中字符串类型json操作的注意事项
May 02 Python
速记Python布尔值
Nov 09 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
Mar 13 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
Python之list对应元素求和的方法
Jun 28 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
python开启debug模式的方法
Jun 27 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python爬虫-模拟微博登录功能
Sep 12 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
总结几个非常实用的Python库
Jun 26 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
js类型检查实现代码
2010/10/29 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
php 修改密码实现代码
2017/05/24 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
Python探索之SocketServer详解
2017/10/28 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
物业经理自我鉴定
2014/03/03 职场文书
无偿献血倡议书
2014/04/14 职场文书
项目负责人任命书
2014/06/04 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
弄虚作假心得体会
2014/09/10 职场文书
党员个人对照检查材料
2014/10/01 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
采购员岗位职责
2015/02/03 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
优化Mysql查询的示例
2022/04/26 MySQL