小明:嘿,小李,我最近在做一个数据分析平台,想实现一个“下载”功能,怎么操作呢?
小李:你可以考虑用API来实现。比如后端提供一个下载接口,前端调用这个接口,然后返回文件流。
小明:那具体怎么写代码呢?有没有例子?
小李:当然有。比如用Python Flask框架,你可以这样写:
from flask import Flask, send_file
import pandas as pd
app = Flask(__name__)
@app.route('/download')
def download():
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Age': [25, 30]
})
file_path = 'data.csv'
df.to_csv(file_path, index=False)
return send_file(file_path, as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
小明:哦,原来如此!这样用户访问/download就能下载CSV文件了。
小李:没错。你也可以根据不同的格式,比如Excel、JSON等,生成对应的文件再返回。
小明:那如果用户需要从前端触发下载呢?
小李:可以用JavaScript发起请求,并使用Blob对象处理响应数据,最后用`window.open`或者`a.download`来触发下载。
小明:明白了,谢谢!

小李:不客气,记得测试一下不同浏览器的兼容性。
