django cookie、session

1.cookie

(1)什么是cookie?

  服务器让浏览器保存在浏览器本地的键值对

(2) 为什么要有cookie?

  因为http协议无状态,每一次访问请求没有任何关系,无法保存状态

(3)cookie的特点?

  cookie是由服务器给浏览器设置的

  在同一个浏览器中访问页面时,携带者cookie

(4)设置cookie

  例如:

  response1 = redirect(‘/login/’)

  response1.set_cookie(key, value)  或者  response1.set_cookie(key, value,max_age)   其中max_age是创建的这个cookie在浏览器中保存多长时间,单位秒

  response1.set_cookie(key, value,salt='')  加盐加密

(5)获取cookie 

  request.COOKIES['key']  或者

  request.COOKIES.get(key)    推荐取法

(6) 删除cookie

  res.delete_cookie(key)

 

2.session

(1)什么是session

  session是保存在服务器上的键值对,每一个session对应一个cookie,其依赖于cookie

(2)为什么用session 

  1.cookie在浏览器端,不太安全

  2.cookie保存的长度受限

(3)设置session

  request.session[key] = value  或者

  request.session.setdefault(key,value)  当存在时不设置

(4)获取session

  request.session[key]  或者

  request.session.get('key', ‘’)

(5) 删除session 

  request.session.pop(key)     删除某个键值对

  del request.session['key']

  request.session.delete()   删除所有的session键值对

  request.session.flush()   删除所有的session键值对及cookie键值对

  request.session.set_expiry()   设置超时时间request.session.clear_expired()    清除当前过期的session

(6)session的其他的配置

SESSION_COOKIE_NAME = 'sessionid'
# Age of cookie, in seconds (default: 2 weeks).
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
# Whether to save the session data on every request.
SESSION_SAVE_EVERY_REQUEST = False
# Whether a user's session cookie expires when the Web browser is closed.
SESSION_EXPIRE_AT_BROWSER_CLOSE = False

 

3.在设置session时,涉及了数据的传输,需以json的形式,所以在设置session时,其对应的值要符合转换为json的数据类型。获取session时其又会反序列化回来

 

posted on 2018-09-18 21:59  zhaosijia  阅读(102)  评论(0编辑  收藏  举报

导航