服务器之家

服务器之家 > 正文

django免除csrf校验的方法

时间:2021-10-26 10:03     来源/作者:一个正经程序员

免除csrf校验

在django中默认启动csrf校验,当用户发起post请求时,必须携带csrf_token参数。如果不想使用csrf校验时,可以使用以下方式免除校验。以下方式都是在局部中使用,如果想全局禁用时,需要在settings文件中配置,这种方式不推荐使用。

一、函数免除csrf校验

?
1
2
3
4
from django.views.decorators.csrf import csrf_exempt# 免除csrf校验@csrf_exempt
def users(request):   
 uses_list = ["柚子", "西瓜"]   
 return HttpResponse(json.dumps(uses_list))

二、对类免除csrf校验

第一种方式

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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")

第二种方式

?
1
2
3
4
5
6
7
8
9
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")

第三种方式

?
1
2
3
4
5
6
7
8
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中添加

?
1
2
3
4
from django.views.decorators.csrf import csrf_exempt
urlpatterns = [
    path('teachers/', csrf_exempt(TeachersView.as_view()), name="teachers"),
]

到此这篇关于django免除csrf校验的方法的文章就介绍到这了,更多相关django免除csrf校验内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_42486675/article/details/107356485

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部