状态保持

  • HTTP协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状
  • 客户端与服务器端的一次通信,就是一次会话
  • 实现状态保持的方式:在客户端或服务器端存储与会话有关的数据
  • 存储方式包括cookie、session,会话一般指session对象
  • 使用cookie,所有数据存储在客户端,注意不要存储敏感信息
  • 推荐使用sesison方式,所有数据存储在服务器端,在客户端cookie中存储session_id
  • 状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据
  • 注意:不同的请求者之间不会共享这个数据,与请求者一一对应

开启session

  • 使用django-admin startproject创建的项目默认启用
  • 禁用会话:删除下面指定的两个值,禁用会话将节省一些性能消耗
  • Django 中session需要依赖数据库,因此需要确认数据库中是否存在 与session相关的 表
  • 在settings.py文件中

    * 项INSTALLED_APPS列表中添加:
    * 'django.contrib.sessions',
    
    * 项MIDDLEWARE_CLASSES列表中添加:
    * 'django.contrib.sessions.middleware.SessionMiddleware',
    

使用session

  • 启用会话后,每个HttpRequest对象将具有一个session属性,它是一个类字典对象
  • get(key, default=None):根据键获取会话的值
  • clear():清除所有会话
  • flush():删除当前的会话数据并删除会话的Cookie
  • del request.session['member_id']:删除会话
  • 示例:

    #session设置
     request.session[key] = value
    
    #session获取
     request.session.get(key,default=Node)
    
    #session删除
    
    # 删除单个key 不存在时报错
     del request.session['a'] 
    
    #清除所有会话,但不会删除数据
     request.session.clear() 
    
    #删除当前的会话数据
     request.session.flush()
    

results matching ""

    No results matching ""