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连接mysql调用存储过程示例
Mar 05 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
Python 中 list 的各项操作技巧
Apr 13 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python对List中的元素排序的方法
Apr 01 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Python整数对象实现原理详解
Jul 01 Python
python怎么删除缓存文件
Jul 19 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP查询网站的PR值
2013/10/30 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
mongodb和php的用法详解
2019/03/25 PHP
PHP7 新增常量
2021/03/09 PHP
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
Python中实现对list做减法操作介绍
2015/01/09 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
python实现解数独程序代码
2017/04/12 Python
python 正确保留多位小数的实例
2018/07/16 Python
python plotly绘制直方图实例详解
2019/07/22 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
python lambda的使用详解
2021/02/26 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
前台文员岗位职责
2013/12/28 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
精通CAD能手自荐书
2014/01/31 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
总结会主持词
2015/07/02 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
尝试使用Python爬取城市租房信息
2022/04/12 Python