在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中设置变量作为默认值时容易遇到的错误
Apr 03 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
Jul 30 Python
Python利用ansible分发处理任务
Aug 04 Python
使用python脚本实现查询火车票工具
Jul 19 Python
python Tcp协议发送和接收信息的例子
Jul 22 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
python和JavaScript哪个容易上手
Jun 23 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
用Python将库打包发布到pypi
Apr 13 Python
opencv检测动态物体的实现
Jul 21 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语法(1)
2006/10/09 PHP
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
js实现随机8位验证码
2020/07/24 Javascript
Python线程详解
2015/06/24 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
python自动化生成IOS的图标
2018/11/13 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
技术入股协议书
2016/03/22 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python