在django中使用post方法时,需要增加csrftoken的例子

 更新时间:2020年03月13日 14:33:08   作者:梓沂  
这篇文章主要介绍了在django中使用post方法时,需要增加csrftoken的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

从百度查到在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基于xmlrpc实现二进制文件传输的方法

    python基于xmlrpc实现二进制文件传输的方法

    这篇文章主要介绍了python基于xmlrpc实现二进制文件传输的方法,实例分析了xmlrpclib模块的使用技巧,需要的朋友可以参考下
    2015-06-06
  • tensorflow2 自定义损失函数使用的隐藏坑

    tensorflow2 自定义损失函数使用的隐藏坑

    本文主要介绍了tensorflow2 自定义损失函数使用的隐藏坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • python调试神器PySnooper的使用

    python调试神器PySnooper的使用

    这篇文章主要介绍了python调试神器PySnooper的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 利用Python制作本地Excel的查询与生成的程序问题

    利用Python制作本地Excel的查询与生成的程序问题

    最近遇到这样一个项目需求制作一个程序有一个简单的查询入口实现Excel的查询与生成,今天教大家利用Python制作本地Excel的查询与生成的程序,感兴趣的朋友跟随小编一起看看吧
    2022-06-06
  • python编程实现随机生成多个椭圆实例代码

    python编程实现随机生成多个椭圆实例代码

    这篇文章主要介绍了python编程实现随机生成多个椭圆实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python新手们容易犯的几个错误总结

    Python新手们容易犯的几个错误总结

    python语言里面有一些小的坑,特别容易弄混弄错,初学者若不注意的话,很容易坑进去,下面我给大家深入解析一些这几个坑,希望对初学者有所帮助,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04
  • Python简单删除列表中相同元素的方法示例

    Python简单删除列表中相同元素的方法示例

    这篇文章主要介绍了Python简单删除列表中相同元素的方法,结合具体实例形式分析了Python使用list、set方法针对列表元素的去重与排序操作实现技巧,非常简单实用,需要的朋友可以参考下
    2017-06-06
  • Python3实现的Mysql数据库操作封装类

    Python3实现的Mysql数据库操作封装类

    这篇文章主要介绍了Python3实现的Mysql数据库操作封装类,涉及Python针对mysql数据库的连接、查询、更新及关闭连接等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Python Requests.post()请求失败时的retry设置方式

    Python Requests.post()请求失败时的retry设置方式

    这篇文章主要介绍了Python Requests.post()请求失败时的retry设置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python读取sqlite数据库文件的方法分析

    Python读取sqlite数据库文件的方法分析

    这篇文章主要介绍了Python读取sqlite数据库文件的方法,结合实例形式分析了Python引入sqlite3模块操作sqlite数据库的读取、SQL命令执行等相关操作技巧,需要的朋友可以参考下
    2017-08-08

最新评论