在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中的ceil()方法使用教程
May 14 Python
在Python中操作列表之list.extend()方法的使用
May 20 Python
python实现矩阵乘法的方法
Jun 28 Python
Python字符串切片操作知识详解
Mar 28 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
Python单元测试实例详解
May 25 Python
flask框架中勾子函数的使用详解
Aug 01 Python
Python编程深度学习计算库之numpy
Dec 28 Python
Python中的枚举类型示例介绍
Jan 09 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
python tkinter实现定时关机
Apr 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
Python运算符重载用法实例分析
2015/06/01 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
Django Rest framework频率原理与限制
2019/07/26 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
python3排序的实例方法
2020/10/20 Python
python使用smtplib模块发送邮件
2020/12/17 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
新党章心得体会
2014/09/04 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
旷课检讨书范文
2015/01/27 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server