这篇教程django免除csrf校验的方法写得很实用,希望能帮到您。 免除csrf校验
在django中默认启动csrf校验,当用户发起post请求时,必须携带csrf_token参数。如果不想使用csrf校验时,可以使用以下方式免除校验。以下方式都是在局部中使用,如果想全局禁用时,需要在settings文件中配置,这种方式不推荐使用。 一、函数免除csrf校验
from django.views.decorators.csrf import csrf_exempt# 免除csrf校验@csrf_exemptdef users(request): uses_list = ["柚子", "西瓜"] return HttpResponse(json.dumps(uses_list)) 二、对类免除csrf校验
第一种方式
# dispatch是类视图的根方法,通过dispatch进行反射找到其他请求from django.views.decorators.csrf import csrf_exemptfrom django.utils.decorators import method_decoratorclass 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_exemptfrom 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_exemptclass 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_exempturlpatterns = [ path('teachers/', csrf_exempt(TeachersView.as_view()), name="teachers"),] 到此这篇关于django免除csrf校验的方法的文章就介绍到这了,更多相关django免除csrf校验内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! numpy中np.nditer、flags=[multi_index] 的用法说明 教你怎么用Python实现自动生日祝福 |