11 Django REST Framework 针对基于类的视图添加 @csrf_exempt
01-在类的 dispatch 方法上使用 @csrf_exempt
from django.views.decorators.csrf import csrf_exemptclass MyView(View):def get(self, request):return HttpResponse("hi")def post(self, request):return HttpResponse("hi")@csrf_exemptdef dispatch(self, *args, **kwargs):return super(MyView, self).dispatch(*args, **kwargs)
02-在 urls.py 中配置
from django.conf.urls import url from django.views.decorators.csrf import csrf_exempt import viewsurlpatterns = [url(r'^myview/$', csrf_exempt(views.MyView.as_view()), name='myview'), ]
03-重新改写其中验证 csrf 的方法
在之前,我们对于 csrf 的处理都是使用的 csrf_exempt ,现在我们的 API 都是使用 Router 来生成了。该怎么办呢? 在 Django 中,一个请求在到达视图之前,会先经过中间件的处理。在 DRF 中,所有的请求会先经过认证处理,如果请求认证通过,则会让请求访问视图,如果认证不通过,请求就无法到达视图。所以,我们采用的方法是重写认证。 在 APIView 中,如果提供了 authentication_classes ,则会使用提供的认证后端来进行认证。如果没有提供,则会使用默认的认证后端。有关的细节我们将会在之后的章节中讨论,大家就先了解到这里。提供 csrf 验证的是一个叫做 SessionAuthentication 的认证后端,我们需要重新改写其中验证 csrf 的方法。
# views.pyfrom rest_framework.authentication import SessionAuthenticationclass CsrfExemptSessionAuthentication(SessionAuthentication):"""去除 CSRF 检查"""def enforce_csrf(self, request):returnclass MsgCodeViewSet(CreateModelMixin, viewsets.GenericViewSet):serializer_class = MsgCodeSerializerpagination_class = StandardResultsSetPagination# authentication_classes = (CsrfExemptSessionAuthentication, )permission_classes = (AllowAny, )
转载于:https://www.cnblogs.com/pgxpython/p/10683474.html
11 Django REST Framework 针对基于类的视图添加 @csrf_exempt相关推荐
- django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单
使用基于类的视图处理表单 表单的处理通常有3 个步骤: 初始的的GET (空白或预填充的表单) 带有非法数据的POST(通常重新显示表单和错误信息) 带有合法数据的POST(处理数据并重定向) 你自己 ...
- django 1.8 官方文档翻译: 3-4-1 基于类的视图
基于类的视图 视图是一个可调用对象,它接收一个请求然后返回一个响应.这个可调用对象可以不只是函数,Django 提供一些可以用作视图的类.它们允许你结构化你的视图并且利用继承和混合重用代码.后面我们将 ...
- Django 学习小组:基于类的通用视图详解(一)
通过三周的时间我们开发了一个简单的个人 Blog,教程地址: 第一周:Django 学习小组:博客开发实战第一周教程 -- 编写博客的 Model 和首页面 第二周:Django 学习小组:博客开发实 ...
- FBV(function base views) 顾名思义基于函数的视图类 CBV(class base views)基于类的视图类
一. 概念 FBV(function base views) 顾名思义基于函数的视图类 CBV(class base views)基于类的视图类 至于区别呢? 我觉得只是写法上的不一样, 实现的结果都 ...
- Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)
Django中的查询函数 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询. 不管哪个函数注意返回值的类型 函数名 功能 返回值 说明 get 返回表中满足条件的 ...
- 第5天:基于类的视图与中间件
类视图引入 类视图的定义与使用 类视图实现的原理 在类视图中使用装饰器 类视图多继承&Minx扩展类 中间件 类视图引入 以函数的方式定义的视图成为函数视图,函数视图便于理解.但是遇到一个视图 ...
- as 不显示gradle视图_Python构建RESTful网络服务[Django篇:基于类视图的API]
系列文章介绍 本系列文章将详细介绍将Django官方引导教程中的投票项目改写为RESTful网络服务.Django官方教程地址https://docs.djangoproject.com/zh-han ...
- django 1.8 官方文档翻译: 3-4-2 基于类的内建通用视图
基于类的内建通用视图 编写Web应用可能是单调的,因为你需要不断的重复某一种模式. Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历 ...
- Django 基于类的通用视图详解
原文出处:https://segmentfault.com/a/1190000005685454 Django 学习小组:基于类的通用视图详解(一) 通过三周的时间我们开发了一个简单的个人 Blog, ...
- [转]Django REST framework 简介与中文教程
Django REST framework 简介与中文教程 简介 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的. 在开发REST AP ...
最新文章
- 分部类--重温篇[好处,示例]
- 基于改进的RPCA人脸识别算法
- python的网页解析器_Python网页解析器使用实例详解
- 算法设计与分析——分治与递归策略——hanoi问题
- 操作系统学习总结(超赞!!!)
- 零基础学python大概要多久-怎么自学python,大概要多久?
- ConcurrentHashMap源码分析(保姆式讲解):Put、扩容原理详解 博主可答疑
- 自己上手搭建VUE项目
- html5 js实现ppt制作,impress.js前端制作酷炫ppt详细教程
- ios数据恢复工具:Mac FoneLab for Mac
- stm32摄像头调试 | 串口传输照片数据 | 用python来设计上位机通信软件
- Arnold材质节点篇-阴影遮罩Shadow matte、颜色转换、纹理着色器
- java模拟器怎么打开apk文件,APK是什么 APK文件怎么打开【详解】
- Android学习之Pair类 (android.util.Pair )
- 如何让自己变得更加成熟
- 小红书App产品需求文档(PRD)
- oracle06004,Oracle不完全恢复-主动恢复和incarnation/RMAN-20208/RMAN-06004
- Android音频管理器AudioManager用法
- homework-08
- vue获取用户本机ip方法