django的csrf实现过程详解


Posted in Python onJuly 26, 2019

如果是ajax提交,可以按照下面的方式处理

<script src="/static/jq/jquery-3.3.1.js"></script>
 <script src="/static/jq/jquery.cookie.js"></script>
 <script>
   $(function () {
     ajax_buttion()
   }) 
   function ajax_buttion() {
     $("#btn").bind("click",function () {
       $.ajax(
         {
           url:"/test/app1/",
           type:"post",
           data:{
             username:"root",
             pwd:"admin"
           },
           headers:{
             "X-CSRFToken":$.cookie("csrftoken")
           },
           sucess:function (data) {
             console.log(data)
 
           }
         } 
       ) 
     })
   }
 </script>

可以设置一个全局的设置,然后在$(function){

}中执行函数

django的csrf实现过程详解

$(function () {
  ajax_buttion()
  $.ajaxSetup()
})

如果是form表单提交,则可以按照下面的方式处理

<form action="/test/app1/" method="post">
  {% csrf_token %}
  <input type="text" name="uname">
  <input type="submit" value="submit">
  <input type="button" value="ajax" id="btn">
</form>

然后返回使用render的方式返回

def test(request):
  # int("hahah")
  # print(settings.C)
  print("test------->views",time.time())
 
  print(request.method)
  print("_".center(100,"-"))
  print(request)
  # return HttpResponse("last_app1")
  return render(request,"test.html")

中间件里csrf默认是全局都生效的,但是如果我们有需求,比如全局生效,但是我某个函数不需要使用csrf该怎么办;或者我的全局不设置csrf,但是对某个视图函数需要采用csrf,该怎么办

这里就需要导入2个模块

from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.csrf import csrf_protect

然后在视图函数中使用使用装饰器来装饰视图函数

下面的例子就是起到全局启动csrf,但是我这个函数不启动csrf

@csrf_exempt
def test(request):
  # int("hahah")
  # print(settings.C)
  print("test------->views",time.time())
 
  print(request.method)
  print("_".center(100,"-"))
  print(request)
  # return HttpResponse("last_app1")
  return render(request,"test.html")

下面的例子就是全局不启用csrf,但是我这个函数不启动csrf

@csrf_protect
def test(request):
  # int("hahah")
  # print(settings.C)
  print("test------->views",time.time())
 
  print(request.method)
  print("_".center(100,"-"))
  print(request)
  # return HttpResponse("last_app1")
  return render(request,"test.html")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 合并文件的具体实例
Aug 08 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 Python
Python变量访问权限控制详解
Jun 29 Python
Python二维码生成识别实例详解
Jul 16 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
python使用多线程+socket实现端口扫描
May 28 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 Python
详解Python 4.0 预计推出的新功能
Jul 26 #Python
python mysql断开重连的实现方法
Jul 26 #Python
seek引发的python文件读写的问题及解决
Jul 26 #Python
python经典趣味24点游戏程序设计
Jul 26 #Python
对django后台admin下拉框进行过滤的实例
Jul 26 #Python
python函数的万能参数传参详解
Jul 26 #Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 #Python
You might like
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
python实现的多线程端口扫描功能示例
2017/01/21 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
python实现外卖信息管理系统
2018/01/11 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
PyQt5实现简易计算器
2020/05/30 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
求职简历的自我评价怎样写好
2013/10/07 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
产品促销活动策划书
2014/01/15 职场文书
九年级英语教学反思
2014/01/31 职场文书
学前班评语大全
2014/05/04 职场文书
python 判断文件或文件夹是否存在
2022/03/18 Python
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS