内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Flask之初学者(六)

2018-07-08 17:54 出处:清屏网 人气: 评论(0

Flask中的session

cookie:是一种保存数据的格式,也可以看成是保存数据的一个“盒子”,服务器返回cookie给浏览器(由服务器产生),由浏览器保存在本地,下次再访问此服务器时浏览器就会自动将此cookie一起发送给服务器。

session:也是一种保存数据的格式,也可以看成是保存数据的“盒子”,和cookie几乎是“同生共长”的,同cookie不同的是,session是保存在服务器中的。服务器通过cookie返回给浏览器session的相关信息(比如session的id),浏览器通过cookie将session的信息发送给服务器,服务器通过收到的cookie中的session信息来验证访问者的信息。

cookie和session之间的关系:一般来说,session中保存有敏感数据(这些数据会进行加密后保存),但是这些数据并不会发送到浏览器中去,而是通过浏览器发送来的cookie中的session的id来进行验证并使用这些敏感数据;同时session是可以设置过期时间的,到时间后就可以删除服务器中session的数据了,当浏览器中cookie中的session在服务器中找不到时,服务器会重新要求浏览器进行验证并生成新的session。

Flask中的session机制:session不是存放在服务器中的,而是将敏感数据进行加密后存放进session中,再将session放入cookie中返回给客户端(浏览器),下次浏览器访问服务器时,服务器从浏览器发送来的cookie中获取session,并将session中敏感数据解密后获取用户的数据。flask的这种session机制优点是可以节省服务器的开销。(如果使用的是谷歌浏览器,可以在“高级”-“隐私设置和安全性”-“内容设置”-“Cookie”-“查看所有Cookie和网站数据”找到对应网址的cookie,可以发现cookie中有命令session的数据,表明session确实是存放在浏览器的cookie中的)

Flask的session操作(from flask import session):

1. 需要配置SECRET_KEY,值为包含24个字符的字符串(一般为随机字符串),使用“app.config['param_name']=value”的形式或者在配置文件中配置即可(注意:重启服务器后这个值改变了的话就获取不到之前设置的session了)。

2. session可以看做是一个字典,session的增删改查操作跟字典的操作(包括使用的函数)是一样的。

3. session过期时间设置:flask的session过期时间如果没有设置,那么默认就是浏览器回话结束(即关闭浏览器时)后自动过期,session的过期时间是由“session.permanent=True”指定,这时候会去读取配置中的“PERMANENT_SESSION_LIFETIME”的值(datetime.timedelta类型),这个值如果没有设置则默认是31天,也可以在配置中自己设置这个值,比如设置为7天:PERMANENT_SESSION_LIFETIME=datetime.timedelta(days=7)。


分享给小伙伴们:
本文标签: Flask

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号