如果对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'),]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。