DRF框架中csrf异常

一.报错信息

"detail": "CSRF Failed: CSRF cookie not set."

二.解决办法

方法一:

在配置文件中配置

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    )
}

方法二.在提交信息中加上csrf_token:

页面form框中设置

{% csrf_token %}
这代码在页面中的显示内容
<input type="hidden" name="csrfmiddlewaretoken" value="l9gICFdVzkDkLExUoAPRpE0ElkGtG70Xmn6u536Keo3kaQPXEeC00g5kbnY3vJGd">

如果是ajax提交的话

在data中加上

data:{
    ..
    ..
   'csrfmiddlewaretoken': '{{csrf_token}}' //或者 'csrfmiddlewaretoken':'l9gICFdVzkDkLExUoAPRpE0ElkGtG70Xmn6u536Keo3kaQPXEeC00g5kbnY3vJGd'
}

三.奇怪现象肯能与django中中间件有冲突

django中间件

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

如果在中间件中把‘django.middleware.csrf.CsrfViewMiddleware‘,注释掉你用方法二的时候也会报错,只有方法一能正常使用

原文地址:https://www.cnblogs.com/pythonywy/p/11622917.html

时间: 2024-10-06 20:51:48

DRF框架中csrf异常的相关文章

django drf框架中的user验证以及JWT拓展的介绍

登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个拓展比传统的CSRF更加安全.先来介绍一下JWT认证机制吧! Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身

drf框架中jwt认证,以及自定义jwt认证

0909自我总结 drf框架中jwt 一.模块的安装 官方:http://getblimp.github.io/django-rest-framework-jwt/ 他是个第三方的开源项目 安装:pip install djangorestframework-jwt 使用自带设定好的jwt from django.urls import path from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ path(

drf框架中分页组件

0922自我总结 drf框架中分页组件 普通分页(最常用) 自定制分页类 pagination.py from rest_framework.pagination import PageNumberPagination # 普通分页 class CarPageNumberPagination(PageNumberPagination): # 默认一页的条数 page_size = 3 # 用户可以自定义选择一页的条数,但最多显示5条 page_size_query_param = 'page_s

DRF框架中分页功能接口

目录 DRF框架中分页功能接口 DRF框架中分页功能接口 一.在框架中提供来三个类来实现分页功能,PageNumberPagination.LimitOffsetPagination.CursorPagination PageNumberPagination是页码分页,这个类可以进行全局设置 LimitOffsetPagination按照偏移量来进行分页 两个类都可以实现,在程序的具体设计上会有一部分的差别,但是差别不大. CursorPagination加密分页功能 二.使用PageNumbe

DRF框架中其他功能:认证、权限、限流

定义视图时,只要视图继承了APIView或其子类,就可以使用DRF框架的认证.权限和限流功能. 当客户端访问API接口时,DRF框架在调用对应的API接口之前,会依次进行认证.权限和限流的操作. 认证Authentication 权限Permissions 限流Throttling 原文地址:https://www.cnblogs.com/oklizz/p/11290731.html

DRF框架之Serializer序列化器的序列化操作

在DRF框架中,有两种序列化器,一种是Serializer,另一种是ModelSerializer. 今天,我们就先来学习一下Serializer序列化器. 使用Serializer序列化器的开发步骤: 1. 定义Serializer序列化器 首先,我们要在子应用中,创建见一个serializers.py文件,用来编写Serializer序列化器代码. from rest_framework import serializers # 定义序列化器 class BookInfoSerializer

DRF框架之视图集(ModelViewSet)简介

DRF框架中,一共有三个视图集类,我们这里只说明ModelViewSet一个. ModelViewSet是封装度最高的DRF的视图类.包含了怎删改查中的所有接口操作. 它继承自GenericViewSet.ListModelMixin.RetrieveModelMixin.CreateModelMixin.UpdateModelMixin.DestoryModelMixin. 所以,在使用ModelViewSet定义API时,我们只需要套用模板即可. 使用视图集,可以将一系列逻辑相关的动作放到一

Struts2 框架中怎么处理异常Exception

Struts2中异常的处理 在开发Java web应用程序时,由于程序的开发不太完善,导致用户在使用过程中会出现程崩溃的情况,结果就是在浏览器上看见一大堆怎么都看不懂的东西.对于一些商业级的应用可能损失上千万.Struts2 框架异常处理机制对于这种情况提供了有效的支持. 一般情况下,开发中往往希望是这样的:当用户请求发生了异常时,就会转入指定的错误视图资源,不同的异常转入不同的指定的视图资源,用户的体验度就提高了.处理方式有: 1. 在Action中使用try catch解决,但是这中解决方法

JAVA异常基本知识及异常在Spring框架中的整体解决方案

异常的顶级父类是Throwable,下面有两个子类Exception和Error. Error错误一般是虚拟机相关的问题,如系统崩溃,虚拟机错误等,应用程序无法处理,直接导致应用程序运行结束. Exception是我们需要处理的异常. Exception又分为Checked异常和Runtime异常. 所有RuntimeException类及其子类都是Runtime异常.其他的为Checked异常. Checked异常必须显示处理,如果没有处理会发生编译错误. RunTime和Checked的处理