django之cookie和session

为什么有cookie? http协议是无状态的,每次的请求是相互独立的,没办法保存状态. cookie是保存在浏览器上一组组键值对. 特点:

1.由服务器让浏览器进行设置
2. 浏览器有权进行读取或者保存
3. 下次访问时自动携带相应的cookie

django中的操作

设置

response.set_cookie(key,value,max-age=10,)        #  set-cookie
response.set_signed_cookie(key,value,salt='xxx')

获取

request.COOKIES #{  }
request.COOKIES[KEY]
request.COOKIES.get() # cookie

删除cookie

response.delete_cookie(key)     #  set-cookie

session

为什么要有session? cookie保存浏览器本地 不安全 http协议或者浏览器对cookie的大小有限制 session是保存在服务器上一组组键值对,必须依赖cookie. django中操作session

  1. 设置
   request.session[key] = value
  1. 获取
   request.session[key]  request.session.get(key)
  1. 删除
   del request.session[key]
   request.session.pop(key)
   request.session.delete()    #删除所有的数据    不删除cookie
   request.session.flush()      #删除所有的数据    删除cookie
  1. 其他
   request.session.set_expiry(100)
   request.session.clear_expired()   #  清除已过期的session数据

存储的地方: 数据库(默认) 缓存 缓存+数据库 文件 加密cookie

SESSION_SAVE_EVERY_REQUEST = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_ENGINE = 'django.contrib.sessions.backends.db'

版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创

转载请注明:出处来自王晨曦个人站点 » django之cookie和session

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注