Session是服务器端技术,利用这个技术,服务器在运行时可以 为每一个用户的浏览器创建一个其独享的session对象,由于 session为用户浏览器独享,所以用户在访问服务器的web资源时 ,可以把各自的数据放在各自的session中,当用户再去访问该服务器中的其它web资源时,其它web资源再从用户各自的session中 取出数据为用户服务。
image.png

django中session语法

1、设置Sessions值
request.session[‘session_name’] =”admin”
2、获取Sessions值
session_name = request.session[“session_name”]
3、删除Sessions值
del request.session[“session_name”]
4、flush()
删除当前的会话数据并删除会话的Cookie。
这用于确保前面的会话数据不可以再次被用户的浏览器访问

5、get(key, default=None)
fav_color = request.session.get(‘fav_color’, ‘red’)

6、pop(key)
fav_color = request.session.pop(‘fav_color’)

7、keys()
8、items()
9、setdefault()

10 用户session的随机字符串
request.session.session_key

# 将所有Session失效日期小于当前日期的数据删除
request.session.clear_expired()

# 检查 用户session的随机字符串 在数据库中是否
request.session.exists(“session_key”)

# 删除当前用户的所有Session数据
request.session.delete(“session_key”)

request.session.set_expiry(value)
如果value是个整数,session会在些秒数后失效。
如果value是个datatime或timedelta,session就会在这个时间后失效。
如果value是0,用户关闭浏览器session就会失效。
如果value是None,session会依赖全局session失效策略。

session配置

  1. Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中。
  2. a. 配置 settings.py
  3. SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认)
  4. SESSION_COOKIE_NAME "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
  5. SESSION_COOKIE_PATH "/" # Session的cookie保存的路径(默认)
  6. SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)
  7. SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认)
  8. SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认)
  9. SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默认)
  10. SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期(默认)
  11. SESSION_SAVE_EVERY_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存(默认)