我将 api_hour 用于API Web服务器,并尝试使用excel文件响应请求。但这比我想的要困难得多。
如果我使用 nodejs 或 django ,那很好,并且有很多指南。但是 api_hour 不是。以下代码是我的。
headers = {
'Content-Disposition': 'attachment; filename="excel_file.xlsx"',
'Access-Control-Allow-Headers': 'status,Origin, X-Requested-With, Content-Type, Cookie, Accept, X-PINGOTHER',
'Access-Control-Allow-Methods': '*',
'Accept-Ranges': 'bytes'
}
self.responseHeaders = multidict.MultiDict(headers, )
return Response(content_type='application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet',
status=self.status,
headers=self.responseHeaders,
body=response['excel'])
我发现其他的框架(例如 nodejs , django 和 ASP.NET Core )使用< strong>拥有自己的封装函数,因此请勿直接将二进制数据(在此代码中为response['excel']
)分配给主体。
有什么办法回应文件吗?尤其擅长?谢谢。
答案 0 :(得分:1)
looks like Response
是aiohttp.web.Response
。
因此,如果您要查询的是StreamResponse
类,可以将其流式传输到其中。
或者,如果您需要(尝试)强制客户端将数据下载为文件,请添加一个Content-Disposition
标头:
Response(
...,
headers={"Content-Disposition": "attachment; filename=my-excel.xlsx"},
)