• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Django csrf校验的实现
    上一篇:numpy中np.nditer、flags=[multi_index] 的用法说明
    下一篇:教你怎么用Python实现自动生日祝福
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    django免除csrf校验的方法 django,免除,csrf,校验,的,