cookie实现用户登录验证

时间:2022-06-12 15:54:52

cookie实现用户登录验证

1,

INSTALLED_APPS中注册app03

2,在主程序中新建映射关系到app3的url中
 from django.conf.urls import url,include#引入include模块
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^a/', include("app1.urls")),
url(r'^b/', include("app2.urls")),
url(r'^c/', include("app3.urls")),
]

3.视图函数

user_info = {
'asd': {'pwd': ""},
'qwe': {'pwd': ""},
} def login(request):
if request.method == "GET":
return render(request, 'test3login.html') # 用户请求方式为get时,返回test3login.html信息
if request.method == "POST": # 如果用户为post请求时,获取用户数据
u = request.POST.get('username')
p = request.POST.get('pwd')
dic = user_info.get(u) if not dic:
return render(request, 'test3login.html')
if dic['pwd'] == p:
res = redirect('/c/test3/')
res.set_cookie('username111')
# res.set_cookie('username111',u,max_age=10)
# import datetime
# current_date = datetime.datetime.utcnow()
# current_date = current_date + datetime.timedelta(seconds=5)
# res.set_cookie('username111',u,expires=current_date)
res.set_cookie('username111', u)
res.set_cookie('user_type', "f", httponly=True)
return res
else:
return render(request, 'test3login.html') def index(reqeust):
# 获取当前已经登录的用户
v = reqeust.COOKIES.get('username111') return render(reqeust,'index.html',{'current_user': v})

4,test3login.html

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="/c/test2/">
<input type="text" name="username" placeholder="用户名">
<input type="password" name="pwd" placeholder="密码">
<input type="submit">
</form>
</body>
</html>

5,index.html

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎登录:{{ current_user }}</h1>
</body>
</html>