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 yield 使用浅析
May 28 Python
Python本地与全局命名空间用法实例
Jun 16 Python
python 输出上个月的月末日期实例
Apr 11 Python
django使用LDAP验证的方法示例
Dec 10 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
Aug 09 Python
关于numpy数组轴的使用详解
Dec 05 Python
Python中base64与xml取值结合问题
Dec 22 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
python在地图上画比例的实例详解
Nov 13 Python
Python 文本滚动播放器的实现代码
Apr 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
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
php中的MVC模式运用技巧
2007/05/03 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
网页javascript精华代码集
2007/01/24 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Django中Middleware中的函数详解
2019/07/18 Python
python config文件的读写操作示例
2019/09/27 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
结婚喜宴主持词
2014/03/14 职场文书
安徽导游词
2015/02/12 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
Android自定义双向滑动控件
2022/04/19 Java/Android