使sql转储可下载

时间:2012-11-03 14:55:06

标签: python mysql flask

我正在使用python / flask进行投票申请,我需要创建一个允许用户下载mysql转储的按钮。

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

我有两个问题

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

非常感谢!

对于流媒体?

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

1 个答案:

答案 0 :(得分:2)

好的,让我们来看看问题。

您想将投票转储到csv文件中,其中字段以投票表中的','结尾?

你可以直接迭代sqlalchemy表:) 这样的事情。

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

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

现在关于保存它的位置,您有两种选择,可以将其写入硬盘驱动器或将其存储在内存中(取决于约束条件)

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

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