我正在使用 Python 的 Fast API 框架开发一个可供公众使用的 api 端点。它已经完成并且正在工作,但它的工作方式是我将创建它,然后保存到服务器的本地目录,然后读取该文件并返回一个 csv 文件作为对用户的响应。
我的问题是,如何直接将 csv 文件返回给用户,而不将其保存在服务器目录中。我的代码现在是这样的
def export_client_invoice(client_id):
invoice_doc = client_docs_db.view("client_invoice/by_client_id", key=int(client_id), include_docs=True)
data = ["value %d" % i for i in range(1,4)]
with open("./file.csv", 'w', newline='') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(data)
file_like = open("./file.csv", mode="rb")
response = StreamingResponse(file_like, media_type="text/csv")
response.headers["Content-Disposition"] = "attachment; filename=export.csv"
return response