无法在视图函数中的两个Flask请求之间共享变量

2024-05-18 09:09:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要的是在两个烧瓶请求之间共享一个变量! 变量是一个大熊猫数据帧。在

我在this answer中读到我需要从flask global使用g! 基本上,我有两个视图功能如下:

from flask import g
@home.route('/save', methods=['GET'])
def save_ressource():
    an_object = {'key': 'value'}
    setattr(g, 'an_object', an_object)
    return 'sucees'
@home.route('/read', methods=['GET'])
def read_ressource():
    an_object = getattr(g, 'an_object', None)
    if an_object:
        return 'sucess'
    else:
        return 'failure'

但这总是返回失败,即:None

当我读到这里的文档时,上面说:

Starting with Flask 0.10 this is stored on the application context and no longer on the request context which means it becomes available if only the application context is bound and not yet a request.

我的问题是如何解决这个问题?在

如文档中所述,如何绑定应用程序上下文?在

我应该使用会话吗?在

任何帮助都将不胜感激


Tags: theanflaskhomereadgetreturnobject
1条回答
网友
1楼 · 发布于 2024-05-18 09:09:36

答案似乎完全错了。g对象用于在同一个请求中存储从一个函数到另一个函数的全局数据,而不是在请求之间共享数据。在

为此,您需要sessions

from flask import Flask, session

@home.route('/save', methods=['GET'])
def save_ressource():
    an_object = {'key': 'value'}
    session['an_object'] = an_object
    return 'sucees'

@home.route('/read', methods=['GET'])
def read_ressource():
    an_object = session.get('an_object')
    if an_object:
        return 'sucess'
    else:
        return 'failure'

相关问题 更多 >