在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获取标准北京时间的方法
Mar 24 Python
详解Python中的各种函数的使用
May 24 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 Python
Django实战之用户认证(初始配置)
Jul 16 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
Python爬虫爬取、解析数据操作示例
Mar 27 Python
5款实用的python 工具推荐
Oct 13 Python
python tkinter实现连连看游戏
Nov 16 Python
教你使用TensorFlow2识别验证码
Jun 11 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
javascript实现画不相交的圆
2015/04/07 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
python操作mysql数据库
2017/03/05 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python IDLE添加行号显示教程
2020/04/25 Python
python批量生成条形码的示例
2020/10/10 Python
如何用python 操作zookeeper
2020/12/28 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
python实现学生信息管理系统源码
2021/02/22 Python
HSRP的含义以及如何工作
2014/09/10 面试题
毕业生就业自荐书
2013/12/15 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
给校长的建议书600字
2014/05/15 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
Golang 遍历二叉树
2022/04/19 Golang