我想要的是在两个flask请求之间共享一个变量!该变量是一个大数据帧。
我在这个答案中读到,我需要使用烧瓶全球的g!基本上,我有2视图这样的功能:
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'
但这总是返回失败,即:无
当我读到这里的留档时,上面写着:
从Flask 0.10开始,它存储在应用程序上下文中,不再存储在请求上下文中,这意味着如果只有应用程序上下文被绑定,而不是请求,它就变得可用。
我的问题是如何解决这个问题?
如文档中所述,如何绑定应用程序上下文?
我应该改用会话吗?
任何帮助都将不胜感激
链接的答案似乎是完全错误的。g
对象用于在同一请求中存储从一个函数到另一个函数的全局数据,而不是在请求之间共享数据。
为此,您需要会话:
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'