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(Tornado)模拟登录小米抢手机
Nov 12 Python
python中引用与复制用法实例分析
Jun 04 Python
python实现自动重启本程序的方法
Jul 09 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
Aug 13 Python
利用Python脚本实现自动刷网课
Feb 03 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
Python基于traceback模块获取异常信息
Jul 23 Python
python识别验证码的思路及解决方案
Sep 13 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提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
JS动画效果代码3
2008/04/03 Javascript
学习ExtJS form布局
2009/10/08 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
计算机专业推荐信范文
2013/11/20 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL