django免除csrf校验的方法

 更新时间:2021年05月10日 10:13:26   作者:一个正经程序员  
这篇文章主要介绍了django免除csrf校验的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

免除csrf校验

在django中默认启动csrf校验,当用户发起post请求时,必须携带csrf_token参数。如果不想使用csrf校验时,可以使用以下方式免除校验。以下方式都是在局部中使用,如果想全局禁用时,需要在settings文件中配置,这种方式不推荐使用。

一、函数免除csrf校验

from django.views.decorators.csrf import csrf_exempt# 免除csrf校验@csrf_exempt
def users(request):    
 uses_list = ["柚子", "西瓜"]    
 return HttpResponse(json.dumps(uses_list))

二、对类免除csrf校验

第一种方式

# dispatch是类视图的根方法,通过dispatch进行反射找到其他请求

from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
class StudentsView(View):
    """student view"""
 @method_decorator(csrf_exempt)
    def dispatch(self, request, *args, **kwargs):
        print("before")
        ret = super(StudentsView, self).dispatch(request, *args, **kwargs)
        print("after")
        return ret(request, *args, **kwargs)
    
    def get(self,*args,**kwargs):
        return HttpResponse("get")

    def post(self,*args,**kwargs):
        return HttpResponse("post")

    def put(self,*args,**kwargs):
        return HttpResponse("put")

    def delete(self,*args,**kwargs):
        return HttpResponse("delete")

第二种方式

from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator

@method_decorator(csrf_exempt,name="dispatch")
class StudentsView(View):
    """student view"""

    def get(self,*args,**kwargs):
        return HttpResponse("get")

第三种方式

from django.views.decorators.csrf import csrf_exempt
class MyBaseView(object):
    @csrf_exempt
    def dispatch(self, request, *args, **kwargs):
        print("before")
        ret = super(MyBaseView, self).dispatch(request, *args, **kwargs)
        print("after")
        return ret

第四种,在url中添加

from django.views.decorators.csrf import csrf_exempt
urlpatterns = [
    path('teachers/', csrf_exempt(TeachersView.as_view()), name="teachers"),
]

到此这篇关于django免除csrf校验的方法的文章就介绍到这了,更多相关django免除csrf校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • python sqlite3 判断cursor的结果是否为空的案例

    python sqlite3 判断cursor的结果是否为空的案例

    这篇文章主要介绍了python sqlite3 判断cursor的结果是否为空的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 解决Jupyter Notebook使用parser.parse_args出现错误问题

    解决Jupyter Notebook使用parser.parse_args出现错误问题

    这篇文章主要介绍了解决Jupyter Notebook使用parser.parse_args出现错误问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python pandas中to_sql的使用及问题详解

    Python pandas中to_sql的使用及问题详解

    今天在使用 Pandas 的 to_sql 方法时,遇到一些问题,所以下面这篇文章主要给大家介绍了关于Python pandas中to_sql的使用及问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 浅谈Python中的正则表达式

    浅谈Python中的正则表达式

    正则表达式广泛用于与文字、字符串的格式化,放到Python里使用,再合适不过.尤其是在编写爬虫时,用正则表达式匹配URL、匹配IP等,正则表达式都是一个简单、高效的选择,需要的朋友可以参考下
    2021-06-06
  • 使用python实现mqtt的发布和订阅

    使用python实现mqtt的发布和订阅

    这篇文章主要介绍了使用python实现mqtt的发布和订阅,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Python pip配置国内源的方法

    Python pip配置国内源的方法

    这篇文章主要介绍了Python pip配置国内源的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python开发时报TypeError: ‘int‘ object is not iterable错误的解决方式

    Python开发时报TypeError: ‘int‘ object is not iterable错误的解决方

    Python写循环程序的时候遇到TypeError:'int'object is not iterable,所以下面这篇文章主要给大家介绍了关于Python开发时报TypeError:'int' object is not iterable错误的解决方式,需要的朋友可以参考下
    2022-06-06
  • python光学仿真实现光线追迹之空间关系

    python光学仿真实现光线追迹之空间关系

    这篇文章主要介绍了python光学仿真中实现光线追迹的空间关系示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Python绘制时钟的示例代码

    Python绘制时钟的示例代码

    这篇文章主要介绍了如何利用Python和Pygame库绘制一个简单的时钟效果。文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-02-02
  • python如何以表格形式打印输出的方法示例

    python如何以表格形式打印输出的方法示例

    这篇文章主要介绍了python如何以表格形式打印输出的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06

最新评论