14 flask之session

1 cookie,session,token

  • cookie:存在客户端的键值对
  • session:存在服务端的键值对(解决cookie存敏感信息的问题)
  • token:不在服务端存东西(解决服务端压力)

2 flask使用session

除请求对象之外,还有一个 session 对象。它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话。

使用之前需要设置一个密钥

app.secret_key = 'dddddddddd'

3 设置session:session['key']=value

main.py

from flask import Flask, session

app = Flask(__name__)
app.secret_key = 'dddddddddd'


@app.route('/')
def index():
    session['dzg'] = 'dzg'
    return 'index'


if __name__ == '__main__':
    app.run()


 

 

  • 返回到前端的是token,所以没有在服务端存东西
  • 和jwt原理很像

4 获取session

session['key']

5 删除

session.pop('key', None)

6 session源码:app.session_interface对象

 

 

源码执行流程:

  • save_session:响应的时候,把session中的值加密序列化放到了cookie中,返回到浏览器中
  • open_session:请求来了,从cookie中取值,反解,生成session对象,以后在视图函数中直接用session就可以了

7 使用自己的session

1、写一个类

2、app.session_interface = 自己写的类

 

 

 

 

posted @ 2022-03-22 23:21  甜甜de微笑  阅读(42)  评论(0编辑  收藏  举报