flask中的session
Posted lxx7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask中的session相关的知识,希望对你有一定的参考价值。
简述session,cookie
session : session和cookie的作用类似,都是为了 存储用户有关的信息,不同的是,cookie是村塾在本地浏览器,session是存储在服务器.存储在服务器的数据相对来说更加安全,不容易被窃取.但储存在服务器有一定的弊端,就是会占用服务器的资源,但现在服务器发展至今,一些session信息还是绰绰有余的.
好处:敏感数据不是直接发给浏览器,而是发送回一个session_id,服务器将session_id和敏感数据做一个映射存储在session中,更加安全
flask中的session工作机制
1 . 把敏感数据经过加密后放入session中,然后再把session存储到cookie中,下次请求的时候,获取cookie中的session,然后再从session中读取敏感数据,并进行解密,获取用户的数据
2 . flask的这种session机制,可以节省服务器的凯西欧啊,因为把所有的信息都存书到了客户端(浏览器)
3 . 数据经过加密是相对安全的
操作session
from flask import Flask,session import os app = Flask(__name__) # 从配置文件读取app.config[‘SECRET_KEY‘] = os.urandom[24] # app.config[‘SECRET_KEY‘] = os.urandom(24) #如果设置成随机的,则重新运行时无法获取username,解决方法就是设置一个固定的SECRET_KEY app.config[‘SECRET_KEY‘] = ‘123456‘ @app.route(‘/‘) def hello_world(): session[‘username‘] = ‘zhiliao‘ return ‘Hello World‘ @app.route(‘/get‘) def get_session(): return session.get(‘username‘) @app.route(‘/delete‘) def delete_session(): 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的主要内容,如果未能解决你的问题,请参考以下文章