运维开发网

django中使用中间件保护和跳过csrf校验

运维开发网 https://www.qedev.com 2020-02-27 13:43 出处:网络 作者:运维开发网整理
基于CBV: from django.http import HttpResponse from django.shortcuts import render from django.views.decorators.csrf import csrf_exempt

基于CBV:

from django.http import HttpResponse
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
# Create your views here.
from django.views import View
@method_decorator(csrf_exempt,name=‘dispatch‘)
class asset(View):
    def dispatch(self, request, *args, **kwargs):
        return super().dispatch(request, *args, **kwargs)
    def get(self,request):
        return HttpResponse(‘get请求‘)
    def post(self,request):
        print(request.POST)
        return HttpResponse(‘post请求‘)

 

基于FBV:

@csrf_protect
def asset1(request):
    return HttpResponse(‘ok‘)

 

PS:如果在中间件中注释了全局的csrf,那么可以使用csrf_protect来保护csrf

    如果中间件中启用了全局的csrf,那么可以使用csrf_except来跳过csrf校验

0

精彩评论

暂无评论...
验证码 换一张
取 消