Flask& Pandas:将csv作为pandas Dataframe上传并通过视图传递

时间:2013-12-09 02:49:07

标签: python pandas flask

我开始构建一个允许用户上传csv的应用。然后,csv将作为Pandas Dataframe加载。使用该数据帧,将进行多次计算,有时会提示用户完成整个过程。

我设法构建上传过程并使用Flask tutorial.保存文件但是,我不知道如何将Dataframe从一个视图传递到另一个视图。

我的想法是在Dataframe上执行计算,就像我使用本地脚本一样,将变量df分配给数据帧并在每个视图中引用它。

Flask可以吗?如果没有,有没有其他方法来引用内存文件?

3 个答案:

答案 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