加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

django 在CBV(类通用视图)和FBV(视图函数)中添加csrf_exempt使用

发布时间:2020-12-15 17:14:52 所属栏目:大数据 来源:网络整理
导读:如果对CBV和FBV不太了解的同学,可以参考下文: Django中CBV(类通用视图)和FBV(视图函数) 在django中基于CBV(类通用视图)和FBV(视图函数)中添加csrf_exempt的方法是不一样,如图所示: FBV(视图函数) from?django.views.decorators.csrf?import?csrf_e

如果对CBV和FBV不太了解的同学,可以参考下文:

Django中CBV(类通用视图)和FBV(视图函数)

在django中基于CBV(类通用视图)和FBV(视图函数)中添加csrf_exempt的方法是不一样,如图所示:

FBV(视图函数)

from?django.views.decorators.csrf?import?csrf_exempt
from?django.shortcuts?import?render

@csrf_exempt
def?login(request):
????return?render(request,'login.html')

而使用CBV如果按照FBV(视图函数)来写,django会提示错误403错误

Forbidden?(CSRF?cookie?not?set.):?/login.html

正确写法如下:

第一种方法:

from?django.views?import?View
from?django.shortcuts?import?render
from?django.views.decorators.csrf?import?csrf_exempt

class?LoginView(View):

????def?get(self,?request):
????????return?render(request,'login.html')

????def?post(self,'login.html')

????@csrf_exempt
????def?dispatch(self,?*args,?**kwargs):
????????return?super(LoginView,?self).dispatch(*args,?**kwargs)

第二种方法:在urls.py中配置

from?django.conf.urls?import?url
from?django.views.decorators.csrf?import?csrf_exempt
import?views

urlpatterns?=?[
????url(r'^login/$',?csrf_exempt(views.LoginView.as_view()),?name='loginview'),]


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读