1.把敏感的数据经过加密后放入session中,然后在把session存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取session,
然后再从session中读取敏感数据,并进行解密,获取最终的用户数据
2.flask的这种session,*可以节省服务器的开销,因为把所有信息都存放到了客户端*(浏览器)
falsk中使用cookie和session
1.cookies:在flask中操作cookie 是通过response对象来操作,可以在response返回之前,通过response.set_cookie来设置,这个方法有一下
几个参数需要注意:*key:设置的cookie的key*value:key对应的value*max_age:改cookie的过期时间,如果不设置,则浏览器关闭后就会自动过期。*expires:过期时间,应该是一个datetime类型*domain:该cookie在哪个域名中有效.一般设置子域名,比如cms.example.com*path:该cookie在哪个路径下有效。
2.session:Flask中的sessipn是通过from falsk import session 然后添加值key和value进去即可。并且,falsk中的session机制是将
session信息假面,然后存储在cookie 中。专业术语叫做client side session1.使用session需要从flask中导入session,以后所有和session相关操作都是通过这个变量来的2.使用session需要设置SECRET_KEY,用来作为加密用的。并且这个SECRET_KEY如果每次服务器启动后都变化的话,那么值钱的session就不能通过当前这个SECRET_KEY进行解密了*操作session的时候,跟操作字典是一样的。*添加session:session['username']*删除session:session.pop('username')或者del session['username']*清除所有session:session.clear()*获取session:session.get('username')
3.设置session的过期时间:如果没有指定session 的过期时间,那么默认是浏览器关闭后自动结束如果设置了session的permanent属性为True,那么过期时间是31天。可以通过给app.config设置PERMANENT_SESSION_LIFETIME来更改过期时间这个值的数据类型是datetime.timedelay类型
from flask import Flask,session
import os
from datetime import timedelta
app = Flask(__name__)
#设置config的时候只有一个数据可以用下面这种
#SECRET_KEY的值需要24个字符串->是用来加密用的
app.config['SECRET_KEY']=os.urandom(24)
#设置session的过期时间为7天
app.config['PERMANENT_SESSION_LIFETIME']=timedelta(days=7)
#config中有多个数据才用->app.config.from_object(config)#添加数据到session中
#操作session的时候,跟操作字典是一样的@app.route('/')
def hello_world():session['username']='miracle'# 如果没有设置session的过期时间,那么默认是浏览器关闭后就自动结束# 如果设置了session的permanent属性为True,那么过期时间为31天,permanent会从PERMANENT_SESSION_LIFETIME中读取数据session.permanent=Truereturn 'index'@app.route('/get/')
def get():#session['username']->因为存放在session里面的信息是字典格式就跟获取字典一样,这种发放如果值不存在就会抛出一样#session.get('username')->使用get值不存在返回Nonereturn session.get('username')@app.route('/delete/')
def delete():print(session.get('username'))session.pop('username')print(session.get('username'))return 'success'@app.route('/clear/')
def clear():print(session.get('username'))#删除session中的所有数据session.clear()print(session.get('username'))return 'success'if __name__ == '__main__':app.run(debug=True)

Flask-中session的工作机制和session操作相关推荐

  1. NS2中的WirelessPhyExt工作机制研究

    NS2中的WirelessPhyExt工作机制研究 @NS2开发笔记 1.概述 WirelessPhyExt是WirelessPhy的扩展,是直接从WirelessPhy继承而来的,但是在Wirele ...

  2. 透过 In-memory Channel 看 Knative Eventing 中 Broker/Trigger 工作机制

    In-memory Channel是当前Knative Eventing中默认的Channel, 也是一般刚接触Knative Eventing首先了解到的Channel.本文通过分析 In-memo ...

  3. python中对excel工作表的基础操作:xlrd、xlwt模块笔记

    模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. (2)为什么使用xlrd模块? 在UI自动化 ...

  4. session对象运行机制

    当你看到 "会话" 这个词的时候,你会怎么理解呢?是交流.对话的意思吗?那毫无疑问绝对是的啦,只不过那是传统意义上的,或者说是日常生活中的意思,在计算机科学领域,它的意思就要引申一 ...

  5. Session和cookie机制详解

    虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java web ...

  6. php存储session更改,php如何修改SESSION的生存存储时间的实例代码_php实例

    PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置.Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用. PHP Session 变量 当您运行一个 ...

  7. php session 全局,PHP超级全局变量——Session 变量

    标签: PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置.Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用. PHP Session 变量 当您 ...

  8. php获得session id,php查看当前Session的ID方法

    PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置.Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用. PHP Session 变量 当您运行一个 ...

  9. 大数据之-Hadoop3.x_Hadoop之HDFS_DataNode的工作机制_原理---大数据之hadoop3.x工作笔记0077

    然后我们再来看一下hadoop中,datanode的工作机制. 1.datanode1,比如启动的时候,它会向namenode进行注册,把自己的信息,比如我存了哪些block块信息, 块中存了块数据, ...

最新文章

  1. 【自动驾驶】Eigen:矩阵Matrix的使用
  2. 【Python】青少年蓝桥杯_每日一题_1.19_Python 求和
  3. 大数据架构如何挑选机器.
  4. lisp 河道水面线计算_天然河道水面线计算的几种方法解剖.pdf
  5. 大型网站架构设计系列总结
  6. 学习antd-design-pro
  7. vs winform常用函数_使用.net core3.0 正式版创建Winform程序
  8. ICCV 2019丨微软亚研院精选论文解读
  9. 指针错位导致对FSD误判
  10. xshell5安装包(百度云),官方免费版,不会强制更新,没有标签限制(2019-4-4)
  11. 广数928te_广数928TE系统说明书
  12. 微软王码五笔98版 v5.2 下载
  13. JPA 中@Enumerated
  14. 真惭愧--连这样的小事都没有坚持下来
  15. 快速打造微信小程序(超详细)
  16. 科普:学C++的以后能从事哪些岗位?
  17. mysql组合索引,abc索引命中
  18. jQuery属性遍历、HTML操作
  19. 【2023最新】Git安装配置教程
  20. Java里面的四种内存屏障

热门文章

  1. Burp Macros功能实现token验证爆破
  2. python代码的层次结构图_Python:父子层次结构的组合
  3. 排序二叉树的创建,插入和查找
  4. PHP strtotime函数详解
  5. 儿子跟妈妈关系不好怎么办?这里有解决办法!
  6. Windows、Linux系统常用CMD命令大全
  7. JAVA实现短信接口的调用
  8. 计算机网络-实验四:配置网络路由
  9. JAVA面试系列:你了解系统可用性吗?
  10. 网络安全学习路线-超详细