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 ...
随机推荐
- js、jquery报错
js.jquery一直报错,是myecplise的问题, 右键项目->属性->builder->js validate去掉单个文件出错 右击文件->myecplise-> ...
- C#获得字符串首字符字母(大写)
/// <summary> /// 获得字符串首字符字母(大写): /// </summary> /// <param name="cnChar"&g ...
- 在Magento中用MySQL模拟队列发送电子邮件
1. 需求 顾客在网站上购买特定商品并且这些商品的总金额超过特定金额后,使用email给顾客发送一个优惠券:假如某件商品已经降价了,则此商品的金额不计算在目标总金额内: 2. 需求分析 ①发送优惠券的 ...
- mysql对库,表,数据类型的操作以及完整性约束
一丶对库的操作 求救语法: help create database; 1.创建数据库 CREATE DATABASE 数据库名 charset utf8; 2.数据库的命名规则: 可以由字母.数字. ...
- Java框架:spring框架整合hibernate框架的xml配置(使用注解的方式)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- winform 自适应屏幕分辨率具体操作和注意事项
第一步:先借助一个类文件 AutoSizeFormClass.cs class AutoSizeFormClass { public struct controlRect { public int L ...
- Android商城开发系列(十三)—— 首页热卖商品布局实现
热卖商品布局效果如下图: 这个布局跟我们上节做的推荐是一样的,也是用LinearLayout和GridView去实现的,新建一个hot_item.xml,代码如下所示: <?xml versio ...
- 从.net到java,从基础架构到解决方案。
这一年,职业生涯中的最大变化,是从.net到java的直接跨越,是从平台架构到解决方案的不断完善. 砥砺前行 初出茅庐,天下无敌.再学三年,寸步难行.很多时候不是别人太强,真的是自己太弱,却不自知. ...
- UVALive 4727 Jump(约瑟夫环,递推)
分析: 如果问题是要求最后一个删除的数,重新编号为0到n-1,f[n]表示答案,那么f[n] = (f[n-1]+k)%n. 因为删掉下标k-1以后可以从下标k重新编号为0. 在这个问题只需要推出最后 ...
- 【51nod1677】treecnt(树上数学题)
点此看题面 大致题意: 给你一个节点从1~n编号的树,让你从中选择k个节点并通过选择的边联通,且要使选择的边数最少,让你计算对于所有选择k个节点的情况最小选择边数的总和. 题解 这道题乍一看很麻烦:最 ...