Python 使sql转储可下载
我正在用python/flask制作一个投票应用程序,我需要制作一个按钮,允许用户下载mysql转储 执行转储的mysql代码如下-Python 使sql转储可下载,python,mysql,flask,Python,Mysql,Flask,我正在用python/flask制作一个投票应用程序,我需要制作一个按钮,允许用户下载mysql转储 执行转储的mysql代码如下- 将*选择到以“,”结尾的输出文件“vows.csv”字段中 我有两个问题 保存此转储的路径应该是什么,以便下载 我在用炼金术。如何从flask应用程序执行此代码并提供指向生成文件的链接 非常感谢 流媒体 @app.route('/foo') def foo(): def generate(): yield 'first part
将*选择到以“,”结尾的输出文件“vows.csv”字段中代码>
我有两个问题
- 保存此转储的路径应该是什么,以便下载
- 我在用炼金术。如何从flask应用程序执行此代码并提供指向生成文件的链接
非常感谢
流媒体
@app.route('/foo')
def foo():
def generate():
yield 'first part'
yield 'second part'
return Response(generate(), direct_passthrough=True)
好的,让我们来看看这个问题
您想将您的投票转储到csv文件中,在该文件中,投票表中的字段以“,”结尾
您可以直接迭代sqlalchemy表:)
像这样的
",".join(vote for vote in Vote)
很明显,这可能有点不同,但仍然是正确的。在Python中构造csv,而不是让mysql将其转储
至于在哪里保存,您有两种选择,要么将其写入硬盘,要么将其存储在内存中(取决于限制条件)
如果将其写入硬盘,只需确保其保存在应用程序的/static
目录中,如果它在内存中,则可以直接将其流式传输到请求
另一种方法是动态生成文件,只需将其写入请求程序 这似乎是个好主意!我能够用python生成该文件,但仍然无法通过web应用程序引用它。我的应用程序是/var/www/,不可编辑,我无法输入代码将文件放入静态文件夹。你能给出一些关于“直接流式处理请求”的建议吗?Flask中流式处理响应的文档似乎有一个你想要做的例子:(结合下面Jakob的回答)