session简介与使用
什么是session
当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session
工作机制
HTTP协议是非连接性的,取完当前浏览器的内容,然后关闭浏览器后,链接就断开了,而没有任何机制去记录取出后的信息。而当需要访问同一个网站的另外一个页面时(就好比如在第一个页面选择购买的商品后,跳转到第二个页面去进行付款)这个时候取出来的信息,就读不出来了。所以必须要有一种机制让页面知道原理页面的session内容
使用方法
- 启用会话后,每个HttpRequest对象将具有一个session属性,它是一个类字典对象
- get(key, default=None):根据键获取会话的值
- clear():清除所有会话
- flush():删除当前的会话数据并删除会话的Cookie
- del request.session['member_id']:删除会话
例子:
设置session
def set_session(request): request.session['uname'] = 'xxxx' return HttpResponse('ok')
读取session
def get_session(request): res = resquest.session.get('uname') return HttpResponse(res)
删除session
def del_session(request): # 清空所有缓存 request.session.clear() # 清除指定的缓存 request.session.remove('key') # 活着 request.session.pop('key')
设置session有效时间
def set_expir_session(request): request.session['uname'] = 'xxxx' request.session.set_expir(10) # 设置有效期为10秒 return HttpResponse('ok')