Django之会话技术

1.使用session:

登录时保存登录状态,

创建resp对象:
resp=HttpResponse()

将uname保存在服务器中
request.session['uname']=uname

将upwd保存在服务器中
request.session['upwd']=upwd

查看个人中心:

从服务器中获得登录时保存的uname
uname=request.session.get('uname',None)

从服务器中获得登录时保存的upwd
upwd=request.session.get('upwd',None)

登出已登录的账号

清空所有登录时保存的数据
request.session.flush()

2.使用token:

登录时保存登录状态

创建resp对象
resp=HttpResponse()
生成唯一的UUID:
utoken=str(uuid.uuid4())
在客户端生成utoken:
resp.set_cookie('utoken',utoken)
将生成的utoken保存到user表中
user.utoken=utoken
user.save()

查看个人中心:

在客户端拿到用户登陆时生成的utoken,默认为空:
utoken=request.COOKIES.get('utoken',None)
在user表中获取登录时生成的utoken对应的数据,
user=User.objects.filter(utoken=utoken).first()
uname=user.uname

登出:

创建resp对象
resp=HttpResponse()
删除客户端保存的utoken
resp.delete_cookie('utoken')
resp.content='登出成功'
return resp

3.使用cookie:
登录时在客户端保存用户信息:

创建resp对象
resp=HttpResponse()
将key为uname,值为uname的数据保存到客户端,max_age为过期时间,单位为s
resp.set_cookie('uname',uname,max_age=60)

查看个人中心:

在客户端获取key为uname的值:
uname=request.COOKIES.get('uname',None)

登出:

创建resp对象
resp=HttpResponse()
删除登录时保存在客户端中key为uname的值
resp.delete_cookie('uname')
resp.content='登出成功'
return resp

猜你喜欢

转载自blog.csdn.net/qq_42055440/article/details/80859463
今日推荐