在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实现方法
Nov 18 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
Django app配置多个数据库代码实例
Dec 17 Python
python读取Kafka实例
Dec 23 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
python 如何停止一个死循环的线程
Nov 24 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 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编程效率的方法
2013/11/07 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
javascript 面向对象 function类
2010/05/13 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python的Django框架中if标签的相关使用
2015/07/15 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
tensorflow识别自己手写数字
2018/03/14 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
创联软件面试题笔试题
2012/10/07 面试题
个人素质的自我评价分享
2013/12/16 职场文书
网吧消防安全责任书
2014/07/29 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书