Python 怎么返回文件的字节流信息给前端啊?

2019-11-14 18:54:50 +08:00
 kayseen

如题所示,我现在需要先查数据库,然后把查到的数据转换成 xls, 这里把数据转换成 bytes,但是需要把这个流返回给前端, 然后组织 json 格式如下: {'name': b'\xb1\x1a\xe1......'}, 这样是不符合规范的, 请问我应该怎么处理才能把信息返给前端呢?

4498 次点击
所在节点    Python
12 条回复
TimePPT
2019-11-14 19:03:54 +08:00
数据库为啥不直接转 json
superrichman
2019-11-14 19:07:33 +08:00
你的规范是什么?
hs0000t
2019-11-14 19:15:11 +08:00
base64
kayseen
2019-11-14 19:26:09 +08:00
@TimePPT 需要把 mysql 的数据导出为 excel, 然后我把数据转成 excel 的流给前端
kayseen
2019-11-14 19:26:38 +08:00
@hs0000t b64 格式也不能直接返回啊...
kayseen
2019-11-14 19:30:38 +08:00
我现在不需要把查出来的数据保存, 所以现在没有文件, 只有这个数据的 bytes,可以将这个文件的 bytes 直接转为 xxx.xls, 现在不知道怎么把这些 bytes 返回给前端...
kayseen
2019-11-14 19:32:10 +08:00
@superrichman
是前端有一个导出 excel 的功能, 然后我把数据查出来,以流的形式返回,
我现在不需要把查出来的数据保存, 所以现在没有文件, 只有查出来的数据的 bytes,这些 bytes 可以直接转为 xxx.xls, 我现在不知道怎么把这些 bytes 返回给前端...
superrichman
2019-11-14 19:49:34 +08:00
不知道你的后端是啥, 如果是 flask 可以参考一下这个
https://stackoverflow.com/questions/11017466/flask-to-return-image-stored-in-database
excel 文件把 MIME(Content-Type)类型改成 application/vnd.ms-excel 就可以了.
如果其他的后端也应该是类似的方法, 在返回的 header 写好这个返回的请求是个什么样的文件, 浏览器就会去下载了.
TimePPT
2019-11-14 19:55:40 +08:00
@kayseen 接口传 json,让前端处理 Excel 导出呢?
参照这个方案
https://juejin.im/post/5d1dc5cbe51d45775f516ad0
kayseen
2019-11-14 20:30:51 +08:00
@superrichman
老哥,这方法确实成功了,正好我还是用的 flask,十分十分感谢~
kayseen
2019-11-14 20:31:31 +08:00
@TimePPT
这样的话会显得有点乱,你看下楼上大哥的方法,我成功了的
ebingtel
2019-11-15 08:55:56 +08:00
导出接口 为啥还要做成 json 格式的,直接做成页面不就好了?这样 直接 makr_response 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX