要将CSV文件返回给Angular客户端,可以使用Bottle web框架来实现。以下是一个示例代码,演示了如何使用Bottle框架将CSV文件返回给Angular客户端:
from bottle import Bottle, response
import csv
app = Bottle()
@app.route('/download-csv')
def download_csv():
# 创建一个包含数据的字典列表
data = [
{'Name': 'John', 'Age': 25, 'City': 'New York'},
{'Name': 'Jane', 'Age': 30, 'City': 'London'},
{'Name': 'Bob', 'Age': 35, 'City': 'Paris'}
]
# 设置响应的内容类型为CSV文件
response.content_type = 'text/csv'
response.headers['Content-Disposition'] = 'attachment; filename="data.csv"'
# 创建CSV写入器,并将数据写入到响应体中
writer = csv.DictWriter(response.body, fieldnames=['Name', 'Age', 'City'])
writer.writeheader()
writer.writerows(data)
return response
# 运行Bottle应用
if __name__ == '__main__':
app.run(host='localhost', port=8080)
在这个示例中,我们创建了一个名为download_csv
的路由处理函数,它会返回一个包含数据的CSV文件。我们首先设置响应的内容类型为text/csv
,并设置Content-Disposition
头部,指定文件名为data.csv
,这样浏览器就会将响应保存为CSV文件而不是在浏览器中显示。
然后,我们创建一个CSV写入器,并将数据写入到响应体中。最后,我们返回响应对象。
要运行这个Bottle应用,可以在终端中运行python filename.py
,然后在浏览器中访问http://localhost:8080/download-csv
即可下载CSV文件。