在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 list语法学习(带例子)
Nov 01 Python
python基础教程之分支、循环简单用法
Jun 16 Python
Python统计单词出现的次数
Apr 04 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
Python一行代码实现快速排序的方法
Apr 30 Python
在python中画正态分布图像的实例
Jul 08 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
python matplotlib库直方图绘制详解
Aug 10 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 Python
python实现双链表
May 25 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
数字转英文
2006/12/06 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
js实现的网页颜色代码表全集
2007/07/17 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
js微信分享API
2020/10/11 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
Python实现从url中提取域名的几种方法
2014/09/26 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
如何基于Python按行合并两个txt
2020/11/03 Python
柏林通行证:Berlin Pass
2018/04/11 全球购物
大四自我鉴定
2014/02/08 职场文书
自荐信的基本格式
2014/02/22 职场文书
课外访万家心得体会
2014/09/03 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
公司放假通知范文
2015/04/14 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis