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')
      

results matching ""

    No results matching ""