在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 学习笔记
Dec 27 Python
详解Python的单元测试
Apr 28 Python
Python 绘图和可视化详细介绍
Feb 11 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
Django中的文件的上传的几种方式
Jul 23 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
Oct 23 Python
python实现简单图片物体标注工具
Mar 18 Python
Django 数据库同步操作技巧详解
Jul 19 Python
Django 反向生成url实例详解
Jul 30 Python
通过实例解析python描述符原理作用
Jan 22 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 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模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php跨站攻击实例分析
2014/10/28 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
js汉字转拼音实现代码
2013/02/06 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
毕业生求职推荐信
2013/11/04 职场文书
公司财务工作总结的自我评价
2013/11/23 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
公关活动策划方案
2014/05/25 职场文书
战略合作意向书
2014/07/29 职场文书
2015年教学工作总结
2015/04/02 职场文书
2015大学迎新标语
2015/07/16 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
图书借阅制度范本
2015/08/06 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
nginx配置指令之server_name的具体使用
2022/08/14 Servers