现在,我有一个flask应用程序,其中的部分功能允许我选择日期范围,并查看来自该选定日期范围的sql数据库中的数据。然后,我可以单击一个按钮,并将其导出到一个csv文件,该文件仅保存在flask项目目录中。我希望用户能够下载此csv文件。我想知道用户下载动态csv文件的最佳做法。我应该send_file()然后在用户下载后删除该文件,因为不应该保存此数据,并且用户将不再使用该文件。应该将文件保存到数据库然后从数据库中删除吗?还是可以将其保存在flask目录中?如果可能的话,请提供见解,非常感谢。
答案 0 :(得分:2)
@brunns指出了正确的方向。
您不必将文件保存在数据库或文件结构中或任何地方。它将根据用户请求在内存中创建。
对于d pdf
和d csv
文件,我都使用django完成了,它也与flask一起使用。基础都一样。
对于python3
使用io.StringIO
,对于python2
使用StringIO
from io import StringIO
import csv
from flask import make_response
@app.route('/download')
def post(self):
si = StringIO.StringIO()
cw = csv.writer(si)
cw.writerows(csvList)
output = make_response(si.getvalue())
output.headers["Content-Disposition"] = "attachment; filename=export.csv"
output.headers["Content-type"] = "text/csv"
return output
礼貌:vectorfrog