我开始构建一个允许用户上传csv的应用。然后,csv将作为Pandas Dataframe加载。使用该数据帧,将进行多次计算,有时会提示用户完成整个过程。
我设法构建上传过程并使用Flask tutorial.保存文件但是,我不知道如何将Dataframe从一个视图传递到另一个视图。
我的想法是在Dataframe上执行计算,就像我使用本地脚本一样,将变量df分配给数据帧并在每个视图中引用它。
Flask可以吗?如果没有,有没有其他方法来引用内存文件?
答案 0 :(得分:0)
简单的方法是将数据保存在全局变量中(例如,用户名作为键的字典):
data = dict() # or another cache structure
def edit(request):
data[request.user] = your_data
...
def save(request):
your_data = data.get(request.user)
...
答案 1 :(得分:0)
谢谢你们。似乎caching是最好的解决方案。
答案 2 :(得分:0)
Flask有一个全局变量g
,可用于任意附加属性。 See the documentation on it here。
借用安德烈的片段作为例子:
import flask
def edit(request):
flask.g.data = your_data
...
def save(request):
your_data = flask.g.data
...
只要您添加适当的逻辑以了解dict是否已存在,您就可以使flask.g.data
成为dict。如果您要在代码中初始化flask.g.data = dict()
,那么我认为每次调用代码时都会重新初始化data
。