Use Flask to convert a Pandas dataframe to CSV and serve a download Use Flask to convert a Pandas dataframe to CSV and serve a download flask flask

Use Flask to convert a Pandas dataframe to CSV and serve a download


Set the Content-Disposition to tell the browser to download the file instead of showing its content on the page.

resp = make_response(df.to_csv())resp.headers["Content-Disposition"] = "attachment; filename=export.csv"resp.headers["Content-Type"] = "text/csv"return resp


This is pretty much the same solution but you can just pass the same info into Response:

return Response(       df.to_csv(),       mimetype="text/csv",       headers={"Content-disposition":       "attachment; filename=filename.csv"})


set the content-disposition and use stringIO to convert dataframe to stream, below is the code to achieve,

execel_file = StringIO.StringIO()filename = "%s.csv" % ('output file')df.to_csv(execel_file, encoding='utf-8')csv_output = execel_file.getvalue()execel_file.close()resp = make_response(csv_output)resp.headers["Content-Disposition"] = ("attachment; filename=%s" % filename)resp.headers["Content-Type"] = "text/csv"return resp