在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连接mysql数据库的正确姿势
Feb 03 Python
儿童编程python入门
May 08 Python
详解python中的装饰器
Jul 10 Python
对Python中内置异常层次结构详解
Oct 18 Python
python读取word文档,插入mysql数据库的示例代码
Nov 07 Python
实例讲解Python3中abs()函数
Feb 19 Python
pytorch 预训练层的使用方法
Aug 20 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
python如何正确使用yield
May 21 Python
Python答题卡识别并给出分数的实现代码
Jun 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
javascript some()函数用法详解
2014/11/13 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
js控制table合并具体实现
2014/02/20 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
通过实例了解python property属性
2019/11/01 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
岗位廉政承诺书
2014/03/27 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
利用Python实现Picgo图床工具
2021/11/23 Python