标签:FBV self request dispatch Django CBV csrf method def
# csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件。 # csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件 from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt,csrf_protect # 在FBV中可以加在方法上 @method_decorator(csrf_exempt) def reg(request): ..... # 在CBV中必须加在dispatch上 # 方法一 class HomeView(View): @method_decorator(csrf_exempt) def dispatch(self, request, *args, **kwargs): # 在请求到来之前,都会执行dispatch函数 return super(HomeView, self).dispatch(request, *args, **kwargs) def get(self, request): return render(request, "home.html") def post(self, request): print("Home View POST method...") return redirect("/index/") # 方法二 @method_decorator(csrf_exempt,name='dispatch') class HomeView(View): def get(self, request): return render(request, "home.html") def post(self, request): print("Home View POST method...") return redirect("/index/")
标签:FBV,self,request,dispatch,Django,CBV,csrf,method,def 来源: https://www.cnblogs.com/wtil/p/11623237.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。