概要
#1 请求到来时候: # ctx = RequestContext(self, environ) # self是app对象,environ请求相关的原始数据 # ctx.request = Request(environ) # ctx.session = None # 将包含了request/session的ctx对象放到“空调” { 1232:{ctx:ctx对象} 1231:{ctx:ctx对象} 1211:{ctx:ctx对象} 1111:{ctx:ctx对象} 1261:{ctx:ctx对象} } #2 视图函数: #视图函数在获取request/session时,它内部隐含的操作是根据当前线程/协程的唯一标识 #取到ctx对象,再去ctx对象取request/session from flask import reuqest,session request.method #3 请求结束: #根据当前线程的唯一标记,将“空调”上的数据移除。
一 flask请求相关
二 flask-session
pip3 install flask-session
1、使用
import redis from flask import Flask,sessionfrom flask_session import Session app = Flask(__name__) app.config[‘SESSION_TYPE‘] = ‘redis‘ app.config[‘SESSION_REDIS‘] = redis.Redis(host=‘140.143.227.206‘,port=6379,password=‘1234‘) Session(app) @app.route(‘/login‘) def login(): session[‘user‘] = ‘alex‘ return ‘asdfasfd‘ @app.route(‘/home‘) def index(): print(session.get(‘user‘)) return ‘...‘ if __name__ == ‘__main__‘: app.run()
2、原理
- session数据保存到redis session:随机字符串1:q23asifaksdfkajsdfasdf session:随机字符串2:q23asifaksdfkajsdfasdf session:随机字符串3:q23asifaksdfkajsdfasdf session:随机字符串4:q23asifaksdfkajsdfasdf session:随机字符串5:q23asifaksdfkajsdfasdf - 随机字符串返回给用户。 随机字符串 源码: from flask_session import RedisSessionInterface
原文:https://www.cnblogs.com/zh-xiaoyuan/p/13232651.html