本文按照下列项目来进行说明。
mysite2
- manage.py
- mysite2
- app01
1、在app01/templates文件夹下新建一个login.html文件
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户登录</h1>
<form method="post" action="/login/">
<input type="text" name="user" placeholder="用户名">
<input type="password" name="pwd" placeholder="密码">
<input type="submit" value="提交">
</form>
</body>
</html>
2、在app01/views.py文件中新增一个login函数
#登录
def login(request):
if request.method == "GET":
return render(request,'login.html')
else:
#用户用POST方式发送请求,我们需要获取用户提交的数据
print(request.POST)
return HttpResponse("登陆成功!")
3、在mysite2/urls.py文件中新增login函数的链接
path('login/',views.login)
4、启动服务之后,在浏览器中输入http://127.0.0.1:8000/login/
直接点击提交,会报错
这个因为,默认情况下,Django有一个cs rf token验证。这时候需要在login.html文件中的表单中加一行代码:
重新提交一下表单
终端也输出了用户提交过来的数据
5、我们可以在app01/views.py文件中的login函数中判断是否是已有用户
#登录
def login(request):
if request.method == "GET":
return render(request,'login.html')
else:
#用户用POST方式发送请求,我们需要获取用户提交的数据
print(request.POST)
username = request.POST.get("user")
password = request.POST.get("pwd")
if username == 'root' and password == "123":
return HttpResponse("欢迎用户"+username+"登陆成功!")
else:
return HttpResponse("登陆失败!")
6、输入网址并用指定用户账号登录
7、可以改进一下,用户登录失败,网页程序跳转到登录页面。为此,我们需要对app01/views.py文件中的login函数进行修改
#登录
def login(request):
if request.method == "GET":
return render(request,'login.html')
else:
#用户用POST方式发送请求,我们需要获取用户提交的数据
print(request.POST)
username = request.POST.get("user")
password = request.POST.get("pwd")
if username == 'root' and password == '123':
return HttpResponse("欢迎用户"+username+"登陆成功!")
else:
#登录失败跳回登录界面
if username != 'root' and password != '123':
return render(request, 'login.html', {"error_msg":"用户名和密码错误"})
elif username != 'root' and password == '123':
return render(request, 'login.html', {"error_msg":"用户名错误"})
elif username == 'root' and password != '123':
return render(request, 'login.html', {"error_msg":"密码错误"})