Django-- 会话

会话

用户开一个浏览,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话.

1.会话过程中要解决的问题

因为http协议是无状态的(不保存状态就是,每次都是基于一个请求一个响应.)每次请求和响应都跟上次没有关系)就会产生这种现象,第一次我们登陆网站成功了,当点击购物车的时候就有可能访问的识别的购物车.因为第一次和第二次访问时没有关系的.那怎么解决这个问题呢,我们可以在第一次请求的时候服务端制作一张身份证给浏览器,当浏览器再次请求的时候带着身份证到服务器,服务器拿到身份证后进行识别然后返回当前用户的内容.

上面的思路,就是Cookie

Cookie

(1)、Cookie介绍
Cookie是由服务器端生成,存储在浏览器中的一段纯文本信息,建议不要存 储敏感信息如密码,因为电脑上的浏览器可能被其它人使用。
(2)、Cookie原理
当第一次访问服务端的时候,服务端生成一个Cookie,并且响应的时候将 Cookie信息设置在响应头中然后保存到浏览器。
当浏览器再次访问的时候会携带Cookie到服务端。服务端拿到Cookie然后 进行判断。
在这里插入图片描述
(3)、Cookie特点
①Cookie以键值对的格式进行信息的存储
②Cookie基于域名安全,不同域名的Cookie是不能互相访问的。
例如访问baidu.com时向浏览器中写了Cookie信息,使用同一浏览器访 问sina.com时,无法访问到baidu.com写的Cookie信息。
③当浏览器请求某网站时,会将浏览器存储的跟网站相关的所有Cookie信息提交给网站服务器。
④cookie是有过期时间的,如果不指定,默认关闭浏览器之后cookie就会过期。

Session

(1) session介绍
Session是由服务端生成默认保存到数据库中的一段信息
对于敏感,重要的信息,建议要储藏在服务器端,不能存储在浏览器中
(2) session原理
第一次访问服务端时生成session并且生成一个随机字符串作为session的唯一标识(sessionid)保存到数据库
然后将sessionid设置给cookie,并且返回给浏览器
当浏览器下次访问时携带sessionid即可.
在这里插入图片描述
(3) session使用(session是类字典类型)
1.设置 session: request.session[key]=value
2.获取 session: request.session.get(key)
3.删除 session: request.session.flush() #将整条记录删除
session: request.session.clear() #删除内容部分
del request.session[‘username’] #删除指定的key
4. 指定session过期时间: request.session.set_expiry(2) 2s后过期,
默认是14天后过期,0表示关闭浏览器过期,5s表示5s后过期

#设置session
def set_session(request):
	request.session['username']='zs'
	request.session['age']=18
	return HttpResponse('设置session')

#获取session
def get_session(request):
	username=request.session['username']
	age=request.session['age']
	return	HttpResponse(username + ':' + str(age))

#删除session
def clear_session(request):
	request.session.flush()	#将整条记录删除
	request.session.clear() #删除内容部分
	#删除指定的key
	del request.session['username']
	return HttpResponse('清除成功')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值