CBV中解决 post请求的csrf问题的方式

 

避免发生此问题的方式

 

全局:注释csrf中间件
局部避免csrf的方式:
针对视图函数:# 避免csrf验证

先导入这两个

from django.views.decorators.csrf import csrf_exempt

from django.utils.decorators import method_decorator

针对试图函数的方法
@csrf_exempt
def foo(request):
return HttpResponse("foo")

针对CBV的两种方式

# 方式1
# @method_decorator(csrf_exempt,name="dispatch")
class UserView(View):
    #方式二
    #也可以自定义以dispatch()方法
    @method_decorator(csrf_exempt)  #加上这句就可以不验证post请求的csrf内容
    def dispatch(self, request, *args, **kwargs):
        #写上一个print 方法
        print('Hollow')
        #运行的内容继承dispatch   接收返回值
        res=super(UserView, self).dispatch(request, *args, **kwargs)
        #将返回值返回
        return res
    #定义两个类,get  post这两个
    def get(self,request):
        print('get11111')
        return HttpResponse('getOK')
    def post(self,request):
        return HttpResponse('postOK')

 

 

 

 

posted on 2018-04-08 20:03  王大拿  阅读(172)  评论(0)    收藏  举报

导航