Python 如何在Flask中共享在上下文之外创建的会话值?

Python 如何在Flask中共享在上下文之外创建的会话值?,python,flask,flask-session,Python,Flask,Flask Session,如何在会话中存储线程创建的内容,以便稍后在另一个请求中访问该值 以下是一个示例: @app.route(“/one”) def one(): @复制\u当前\u请求\u上下文 def x(): 会话['status']=“完成” t=线程。线程(目标=x) t、 开始() 返回“一” @应用程序路径(“/two”) def two(): 状态=会话['status'] 返回“二:{}”。格式(状态) 在上面的示例中,我在/one请求中存储了线程中的“状态”(我需要运行线程),但稍后,比如说5s

如何在会话中存储线程创建的内容,以便稍后在另一个请求中访问该值

以下是一个示例:

@app.route(“/one”)
def one():
@复制\u当前\u请求\u上下文
def x():
会话['status']=“完成”
t=线程。线程(目标=x)
t、 开始()
返回“一”
@应用程序路径(“/two”)
def two():
状态=会话['status']
返回“二:{}”。格式(状态)
在上面的示例中,我在/one请求中存储了线程中的“状态”(我需要运行线程),但稍后,比如说5s,我想检查另一个请求(/two)中的状态


@copy\u current\u request\u上下文是否对会话/请求进行只读(或读写和弃写)复制?

最简单也是最好的答案是使用已完全描述的全局变量


但是,如果您的应用程序要进行扩展,并且需要与其他实例共享这些数据,则可以使用“Redis”作为快速内存数据库

最简单也是最好的答案是使用已经完全描述过的全局变量

但是,如果您的应用程序要进行扩展,并且需要与其他实例共享这些数据,则可以使用“Redis”作为快速内存数据库

  • 通过使用@soroosh khodami的建议,我能够实现我想要的。Bellow是可以做到这一点的代码
  • 
    warehouse={}#此关联数组将保留数据
    @应用程序路径(“/one”)
    def one():
    全球仓库
    @复制\u当前\u请求\u上下文
    def x():
    仓库['status']=“完成”
    t=线程。线程(目标=x)
    t、 开始()
    返回“一”
    @应用程序路径(“/two”)
    def two():
    全球仓库
    状态=仓库[“状态”]
    返回“二:{}”。格式(状态)
    
    当然,这是一个幼稚的实现-因为这个对象仓库将在所有请求和会话之间共享-所以应该有一个保护机制(例如:1.将会话中的所有内容存储在某个键下2.有一个清理线程,等等)

    奖金:除此之外,即使在非开发环境中也能工作(例如:Twisted服务器)

  • 是,@copy\u current\u request\u context生成上下文的只读副本(据我测试)
  • 通过使用@soroosh khodami的建议,我能够实现我想要的。Bellow是可以做到这一点的代码
  • 
    warehouse={}#此关联数组将保留数据
    @应用程序路径(“/one”)
    def one():
    全球仓库
    @复制\u当前\u请求\u上下文
    def x():
    仓库['status']=“完成”
    t=线程。线程(目标=x)
    t、 开始()
    返回“一”
    @应用程序路径(“/two”)
    def two():
    全球仓库
    状态=仓库[“状态”]
    返回“二:{}”。格式(状态)
    
    当然,这是一个幼稚的实现-因为这个对象仓库将在所有请求和会话之间共享-所以应该有一个保护机制(例如:1.将会话中的所有内容存储在某个键下2.有一个清理线程,等等)

    奖金:除此之外,即使在非开发环境中也能工作(例如:Twisted服务器)

  • 是,@copy\u current\u request\u context生成上下文的只读副本(据我测试)