首页 > 其他 > 详细

上下文管理

时间:2020-07-04 16:16:18      阅读:42      评论:0      收藏:0      [点我收藏+]

概要

#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

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!