django免除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校验内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. python如何删除文件、目录2. 将python字符串转化成长表达式的函数eval实例3. docker /var/lib/docker/aufs/mnt 目录清理方法4. 如何基于python对接钉钉并获取access_token5. PHP利用curl发送HTTP请求的实例代码6. Python 操作 PostgreSQL 数据库示例【连接、增删改查等】7. PHP数据库抽象层之PDO(三)——事务与自动提交8. AJAX实现文件上传功能报错Current request is not a multipart request详解9. Python使用海龟绘图实现贪吃蛇游戏10. python利用opencv如何实现答题卡自动判卷

网公网安备