在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爬取热搜制作词云

    python爬取热搜制作词云

    这篇文章主要介绍了python爬取百度热搜制作词云,首先爬取百度热搜,至少间隔1小时,存入文件,避免重复请求,如果本1小时有了不再请求,存入数据库,供词云包使用,爬取热搜,具体流程请需要的小伙伴参考下面文章内容
    2021-12-12
  • 老生常谈python函数参数的区别(必看篇)

    老生常谈python函数参数的区别(必看篇)

    下面小编就为大家带来一篇老生常谈python函数参数的区别(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 基于Python利用Pygame实现翻转图像

    基于Python利用Pygame实现翻转图像

    这篇文章主要介绍了基于Python利用Pygame实现翻转图像,我们将了解如何使用Pygame翻转图像,要翻转图像,我们需要使用pygame.transform.flip(Surface, xbool, ybool) 方法,该方法被调用来根据我们的需要在垂直方向或水平方向翻转图像,下面来看看具体的实现过程吧
    2022-02-02
  • Python接口自动化浅析unittest单元测试原理

    Python接口自动化浅析unittest单元测试原理

    这篇文章主要介绍了Python接口自动化浅析unittest单元测试原理,文中描述了单元测试,unittest模块特性、大致流程、源码及实战例子这几个模块,有需要的朋友可以借鉴参考下
    2021-08-08
  • Python实现Mysql数据库连接池实例详解

    Python实现Mysql数据库连接池实例详解

    这篇文章主要介绍了Python实现Mysql数据库连接池实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • python学习之使用Matplotlib画实时的动态折线图的示例代码

    python学习之使用Matplotlib画实时的动态折线图的示例代码

    这篇文章主要介绍了python学习之使用Matplotlib画实时的动态折线图的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 解决Python调用df.to_csv()出现中文乱码的问题

    解决Python调用df.to_csv()出现中文乱码的问题

    在Python使用df.to_csv()时,若出现中文乱码,可通过加入参数encoding="utf_8_sig"解决,"utf-8"编码不包含BOM,直接处理文件时会将BOM误读为内容;而"utf_8_sig"会识别并处理BOM,避免乱码,此方法为实践经验,供参考
    2024-09-09
  • python起点网月票榜字体反爬案例

    python起点网月票榜字体反爬案例

    大家好,本篇文章主要讲的是python起点网月票榜字体反爬案例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Python实现随机生成手机号及正则验证手机号的方法

    Python实现随机生成手机号及正则验证手机号的方法

    这篇文章主要介绍了Python实现随机生成手机号及正则验证手机号的方法,涉及Python基于random模块的随机数以及基于re模块的正则验证相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • python 实现PIL模块在图片画线写字

    python 实现PIL模块在图片画线写字

    这篇文章主要介绍了python 实现PIL模块在图片画线写字,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05

最新评论