报错如下:
初学Django框架,遇到post提交表单失败问题。查阅相关资料说是Django框架使用django.middleware.csrf.CsrfViewMiddleware这个中间件来防止CSRF跨站点请求伪造。 试过普遍推荐的在表单中增加 {% csrf_token %},依然不行。如下:
后经过多方查阅屏蔽csrf机制,方法如下:
方法1:
settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',#确认它存在并注释
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
方法2:
views.py
from django.views.decorators.csrf import csrf_exempt
# Create your views here.
# django工程views.py添加屏蔽装饰器
@csrf_exempt
def test(request):
#...