我正在使用python / flask进行投票申请,我需要创建一个允许用户下载mysql转储的按钮。
执行转储的mysql代码是这样的 -
select * into outfile "votes.csv" fields terminated by ',' from vote;
我有两个问题
非常感谢!
对于流媒体?
@app.route('/foo')
def foo():
def generate():
yield 'first part'
yield 'second part'
return Response(generate(), direct_passthrough=True)
答案 0 :(得分:2)
好的,让我们来看看问题。
您想将投票转储到csv文件中,其中字段以投票表中的','结尾?
你可以直接迭代sqlalchemy表:) 这样的事情。
",".join(vote for vote in Vote)
显然它可能略有不同,但仍然有点看台。在Python中构造csv而不是让mysql将其转储出来。
现在关于保存它的位置,您有两种选择,可以将其写入硬盘驱动器或将其存储在内存中(取决于约束条件)
如果将其写入硬盘驱动器,只需确保将其保存在应用程序的/static
目录中,如果它在内存中,您可以直接将其流式传输到请求中。
另一种方法可能是动态生成文件,只需将其写入请求者即可。