Django的项目中,HTML页面中表单提交表单后出现403错误,且未获取到提交信息,
问题原因:
Django的针对提交的请教,会进行校验校验
解决方案 1:
导入模块
from django.views.decorators.csrf import csrf_exempt # 解决校验问题造成的403错误
并在对应函数前面加上修饰器:
@csrf_exempt #修饰器解决403报错(Django自身数据校验)
def login(request):#登陆界面打开
error_msg = ""
if request.method == "POST":
print(request.POST["email"])
email = request.POST.get("email",None)
pwd = request.POST.get("pwd",None)
print(email,pwd)
if email == "**********@qq.com" and pwd == "asdf":
return HttpResponse("OK")
#return redirect("https://www.baidu.com") # 回复一个特殊的响应,让浏览器请求指定URL,跳转网页
else:
error_msg = "邮箱或密码错误"
return render(request,"login.html",{"error":error_msg})#render完成HTML界面替换
解决方案 2:
在与项目同名文件夹中找到setting.py文件夹,在第47行附近注释掉如下一句话:
'django.middleware.csrf.CsrfViewMiddleware'
效果如下:
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',
]