小明:嘿,小李,我最近在做一个数据分析平台,想实现一个“下载”功能,怎么操作呢?
小李:你可以考虑用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`来触发下载。
小明:明白了,谢谢!
小李:不客气,记得测试一下不同浏览器的兼容性。