服务器端设置cookie的各项参数

cookie和session

一、  cookie

澳门太陽城集团登录网址 1

cookie是保留在浏览器本地的键值对。浏览器和服务器之间传输时,它是在响应头里包括的。浏览器和劳务器端都能够设置cookie。浏览器选取js向劳动器端传送或退换cookie,举个例子在浏览器控台写document.cookie=”user=tom”。

劳务器端设置cookie的各类参数:

request.set_cookie(key,value,max_age=,expires=,path=’/’,domain=’’,secure=False,httponly=False)

澳门太陽城集团登录网址,max_age:cookie的有效期,单位为秒,不过IE不认

澳门太阳集团城网址,expires:cookie的保藏期,值为datatime类型。

eg:设置cookie保藏期为7天

expires=datatime.datatime.utcnow()+datatime.timedelta(day=7)

path:设置该cookie只在该路径下生效

domain:设置在该二级域名下生效

服务器端设置cookie的各项参数。secure:当网址使用https时需改为Ture,默感到Flase。

httponly:只同意采用http协议访谈。然则在浏览器端认同使用js覆盖原值,到达修改的目标。

服务器端设置cookie的各项参数。二、  session

澳门太陽城集团登录网址 2

session是保存于服务器端的键值对。保存格局是{“sessionid”:{“username”:“tom”,“passwd”:“123456”,}},sessionid代表用户的身份,session在查找时是根据sessionid来查找。查找到的value存款和储蓄着用户的个人音信。sessionid是用户访谈服务器时Django自动创制分配的,存于cookie中,所以session须要重视cookie。在数据库中,key和value也是已加密的情势储存。同三个用户只发生一条数据,对于失效的session会自动更新而非重新创立。session暗许保藏期为半个月。

服务器端设置cookie的各项参数。session的大概操作:

服务器端设置cookie的各项参数。获取session:request.session[key]

设置session:request.session[服务器端设置cookie的各项参数。key]=value

删除session:del request.session[key]

注:删除实际上而不是真正的去除,而是将数据库的session_data更新为任何的值。

设置session过期时间:

request.session.set_expiry(value)

只要value是个整数,session会在那些秒数后失效;

倘使value是datatime或timedelta,session会在那么些小时后失效;

若是value是0,则在用户关闭浏览器后失效;

要是value是none,session会在凭仗全局session失效计策。

session失效并不曾从数据库中删去。

三、实例cookie和session合作的记名验证

请移步:

四、调试

浏览器报错:’WSGIRequest’ object has no attribute ‘session’ 

解决方案:由于在pycharm中写session时不提示session的相关操作,所以将settings.py中的中间件由MIDDLEWARE改为MIDDLEWARE_CLASSES。实际上,根据其他博客所写,这是Django版本的问题,1.10之前,中间件的key为MIDDLEWARE_CLASSES, 1.10之后,为MIDDLEWARE。所以在开发环境和其他环境的版本不一致时,要特别小心,会有坑。 (参考文章:http://blog.csdn.net/xiongjiezk/article/details/53220302)

 

You may also like...

发表评论

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

网站地图xml地图