您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:django免除csrf校验的方法

51自学网 2021-10-30 22:41:23
  python
这篇教程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实现自动生日祝福
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。