Form 表單中添加{% csrf_token %}html
能夠經過查詢網頁元素獲得它的name值和value值django
# ‘django.middleware.csrf.Csrf……’,在settings中註釋該行,表示不要進行csrf驗證post
‘django.middleware.csrf.Csrf……’,在settings中註釋該行spa
From django.views.decorators.csrf import csrf_exemptorm
@csrf_exempt csrf
def csrf1(request):htm
if request.method==’GET’:token
return render(request,’csrf1.html’)get
else:return HttpResponse(‘ok’)form
給csrf1()一個裝飾器csrf_exempt,做用是讓csrf1()不要進行csrf驗證
# ‘django.middleware.csrf.Csrf……’,在settings中註釋該行
From django.views.decorators.csrf import csrf_exempt,csrf_protect
@csrf_protect
def csrf1(request):
if request.method==’GET’:
return render(request,’csrf1.html’)
else:return HttpResponse(‘ok’)
給csrf1()一個裝飾器csrf_protect,做用是讓csrf1()要進行csrf驗證
2. 特殊CBV
from django.views import View
from django.utils.decorators import method_decorato
@method_decorator(csrf_protect,name='dispatch')
class Foo(View):
def get(self,request):
pass
def post(self,request):
pass
在form表單中進行提交時,後臺會自動進行csrf的驗證,即沒有註釋‘django.middleware.csrf.Csrf……’它,就必須在
form表單中添加{%csrf_token%}