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的主要内容,如果未能解决你的问题,请参考以下文章

Flask 中的 session 的故事

flask-session

Flask中的session详细用法教程

flask中的session

Flask-Session 简单使用

六十一:Flask.Session之flask操作session