我刚开始使用Flask / Python。我想要实现的是在HTML中有一个下载按钮,它调用以下函数:
function downloadPlotCSV() { $.ajax({ url: "/getPlotCSV", type: "post", success: function(data) { dataPlot = JSON.parse(data); console.log(dataPlot); } }); }
不完整的Flask代码为:
@app.route('/getPlotCSV', methods = ['POST']) def plotCSV(): data = open("outputs/Adjacency.csv")
我面临的问题是我找不到下载此csv文件或将其作为JSON字符串返回的方法,因此可以使用Javascript下载。知道如何将其作为JSON发送或通过Flask本身下载吗?最好的方法是什么?
这是一种不使用Javascript下载CSV文件的方法:
#!/usr/bin/python from flask import Flask, Response app = Flask(__name__) @app.route("/") def hello(): return ''' <html><body> Hello. <a href="/getPlotCSV">Click me.</a> </body></html> ''' @app.route("/getPlotCSV") def getPlotCSV(): # with open("outputs/Adjacency.csv") as fp: # csv = fp.read() csv = '1,2,3\n4,5,6\n' return Response( csv, mimetype="text/csv", headers={"Content-disposition": "attachment; filename=myplot.csv"}) app.run(debug=True)