1

我正在 python/flask 中制作投票应用程序,我需要制作一个按钮,允许用户下载 mysql 转储。

执行转储的 mysql 代码是这样的 - select * into outfile "votes.csv" fields terminated by ',' from vote;

我有 2 个问题

  • 保存此转储以便可以下载它的路径应该是什么?
  • 我正在使用 sqlalchemy。如何从烧瓶应用程序执行此代码并提供指向生成的文件的链接?

非常感谢!

对于流媒体?

 @app.route('/foo')
 def foo():
     def generate():
         yield 'first part'
         yield 'second part'
     return Response(generate(), direct_passthrough=True)
4

1 回答 1

2

好的,让我们看看问题所在。

您想将您的选票转储到一个 csv 文件中,其中的字段以“,”从投票表中终止?

您可能可以直接遍历 sqlalchemy 表 :) 像这样的东西。

",".join(vote for vote in Vote) 

显然它可能略有不同,但仍然是重点。在 Python 中构建 csv,而不是让 mysql 将其转储出去。

现在至于保存在哪里,您有两个选择,将其写入硬盘或存储在内存中(取决于约束)

如果将其写入硬盘驱动器,只需确保将其保存在/static应用程序的目录中,如果它在内存中,则可以直接将其流式传输到请求中。

另一种方法可能是动态生成文件,只需将其写入请求者即可。

于 2012-11-03T14:59:59.890 回答