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 相关文章推荐
Django Highcharts制作图表
Aug 27 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
Python常见数据类型转换操作示例
May 08 Python
Python中Numpy mat的使用详解
May 24 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
Python字符串中删除特定字符的方法
Jan 15 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
python实现自动清理文件夹旧文件
May 10 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 采集心得技巧
2009/05/15 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Python数据库小程序源代码
2019/09/15 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
责任担保书范文
2014/05/21 职场文书
创新社会管理心得体会
2014/09/12 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
努力学习保证书
2015/02/26 职场文书
行政介绍信范文
2015/05/04 职场文书
美丽的大脚观后感
2015/06/03 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
openstack中的rpc远程调用的方法
2021/07/09 Python