我刚开始使用 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)
https://stackoverflow.com/questions/30024948/
相关文章:
asp.net-mvc - 如何从 MVC Controller 返回 Json 对象以查看
c# - 配置 JSON.NET 以忽略 DataContract/DataMember 属性
java - 可以将 Jackson 配置为从所有字符串属性中修剪前导/尾随空格吗?
javascript - js 中奇怪的 JSON 解析行为, "Unexpected token
php - 使用 json_encode() 时删除数组索引引用
javascript - 如何转换为 D3 的 JSON 格式?
jquery - AJAX 将 JavaScript 字符串数组发布到 JsonResult 作为
iOS - 在 swift 中使用 ObjectMapper 映射根 JSON 数组