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 相关文章推荐
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
python统计文章中单词出现次数实例
Feb 27 Python
Python使用xpath实现图片爬取
Sep 16 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
利用For循环遍历Python字典的三种方法实例
Mar 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
JAVA/JSP学习系列之二
2006/10/09 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
建筑施工员岗位职责
2013/11/26 职场文书
《长城》教学反思
2014/02/14 职场文书
难忘的一课教学反思
2014/04/30 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
留学生求职信
2014/06/03 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
学习心理学的体会
2014/11/07 职场文书
安全承诺书
2015/01/19 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP