
简单制作一个用户登陆界面。

view.py
# 练习网络请求与响应
def login(request):
if request.method == "GET":
return render(request, "login.html")
else:
print(request.POST)
return HttpResponse("登陆成功!")
login.html
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登陆title>
head>
<body>
<h1>loginh1>
<form method="post" action="/login/">
<input type="text" name="user"/>
<input type="password" name="password"/>
<input type="submit" value="登陆"/>
form>
body>
html>
提交表单后,返回403页面:

解决方法:在templates的与中加入{%csrf_token%}语句。
Django内置了对大多数csrf攻击的保护,为了防止你做的网站挂网后被不怀好意的人利用攻击手段篡改请求操作,是一种数据提交的验证机制。
<body>
<h1>loginh1>
<form method="post" action="/login/">
{% csrf_token %}
<input type="text" name="user"/>
<input type="password" name="password"/>
<input type="submit" value="登陆"/>
form>
body>
提交表单后返回结果:

# 练习网络请求与响应
from django.shortcuts import redirect # 用于重定向引入包
def login(request):
if request.method == "GET":
return render(request, "login.html")
else:
print(request.POST)
userName = request.POST.get("username")
passWord = request.POST.get("password")
if userName=="admin" and passWord=="123":
# return HttpResponse("欢迎"+userName+",登陆成功!")
return redirect("https://www.baidu.com")
else:
return render(request, "login.html", {"error_msg":"用户名或密码错误"})
<body>
<h1>loginh1>
<form method="post" action="/login/">
{% csrf_token %}
<input type="text" name="username"/>
<input type="password" name="password"/>
<input type="submit" value="登陆"/>
form>
<span>{{ error_msg }}span>
body>

