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初学者:session操作的更多相关文章
- Flask中的session操作
一.配置SECRET_KEY 因为flask的session是通过加密之后放到了cookie中.所以有加密就有密钥用于解密,所以,只要用到了flask的session模块就一定要配置“SECRET_K ...
- Flask的session——关于写扩展所学习到的
这两天端午节.趁着端午节没事干,写了个flask的扩展--flask-RedisSession 在flask中使用该扩展可以让你借助redis数据库轻松获得server-side session. 这 ...
- FLASK 的Session和MoudelForm插件
falsk是小而精的框架,但是热度高, 所有很多爱好者提供了很多扩展插件 功能强大,美而不足的就是兼容稳定性有时候不太好,不过大部分还是很可以的 Flask-Session flask内置sessio ...
- [py][mx]django的cookie和session操作-7天免登录
浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...
- flask 的session
python的flask操作设置.获得与删除session 首先讲一下Python的flask中session与cookies的关系,session是储存在服务器中的,cookies是储存在浏览器本地 ...
- Flask的session
### session:1. session的基本概念:session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个 ...
- cookie编码乱码问题与cookie禁用后session操作
Cookie传输的值只能是ASCII码,该编码表相对老旧不含有很多符号与文字 特别是中文,所以在cookie传值过程中需要先转成相应的ASCII编码再解析 如下 URLEncoder.encode(& ...
- C#语法糖之 session操作类 asp.net
用法: //声名一个数据集合 var listString = new List<string>() { "a", "b", "c&quo ...
- Flask的session使用
由于http是无状态保存的协议,session可以看作不同请求之间保存数据的一种机制.flask的session是基于cookie的会话保持. 流程 当客户端进行第一次请求的时候,客户端的HTTP r ...
随机推荐
- Kotlin基础知识
1. 改进点/基础 //安全判空 val length = text?.length; //类型转换 if (object is Car) { var car = object as Ca } //操 ...
- pat1067. Sort with Swap(0,*) (25)
1067. Sort with Swap(0,*) (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue G ...
- WCF 内置绑定在不同的传输安全模式下的信道层
basicHttpBinding Transport安全模式信道层 Message安全模式信道层 TransportWithMessageCredential安全模式信道层 TransportCred ...
- GitHub上易于高效开发的Android开源项目TOP20--适合新手
1. android-async-http android-async-http是Android上的一个异步.基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上. 2. an ...
- mysql 5.7以上安装遇到的问题
参考地址: https://blog.csdn.net/u012278016/article/details/80455439 本人在window上安装mysql 5.7版本以上的mysql,出现很 ...
- GitLab关于SSH的使用
SSH Git是分布式版本控制系统,这意味着您可以在本地工作,但您也可以将更改共享或“推送”到其他服务器.在将更改推送到GitLab服务器之前,您需要一个用于共享信息的安全通信通道. SSH协议提供此 ...
- iOS中UIWebview中网页宽度自适应的问题
有的网页中会使用"<meta name="viewport" content="width=device-width, initial-scale=1.0 ...
- 梦织未来Windows驱动编程 第04课 驱动相关的数据结构
- Mybatis-连接池与事务
Mybatis 的连接池技术 Mybatis 将它自己的数据源分为三类: UNPOOLED 不使用连接池的数据源 POOLED 使用连接池的数据源 JNDI 使用 JNDI 实现的数据源 Mybati ...
- Python F-string 更快的格式化
Python的格式化有%s,format,F-string,下面是比较这三种格式化的速度比较 In [12]: a = 'hello' In [13]: b = 'world' In [14]: f' ...