flask 一次响应返回多个文件

2018-05-19 15:14:54 +08:00
 vipppppp

如题,来了个 GET 请求,(理论上)要返回一个 jpg 以及一个 yaml 的文件。 做了一阵子 django 和 flask,第一次遇到这样的需求,作为菜鸡,绞尽脑汁和查资料,无从下手。。 很想了解有没有可能实现,或者 v 友有没其他思路。。。 如果可以 有没有可能同时返回文件和数据。。T_T,感谢各位了。。

6795 次点击
所在节点    Python
12 条回复
cloverstd
2018-05-19 15:16:40 +08:00
返回 json
jpg 用 base64
yaml 序列化成 string
vipppppp
2018-05-19 15:21:04 +08:00
@cloverstd 哇,感觉豁然开朗,谢谢兄弟啦~我试试
John60676
2018-05-19 15:24:55 +08:00
为什么会有这样的需求,好奇
vipppppp
2018-05-19 15:40:32 +08:00
@John60676
正常的前后端交互这个需求确实不会存在
我们的的情况是,项目是关于机器人的,需要在机器人启动时去加载新的地图以及数据文件,而且机器人和生成地图的后台不是直接交互的,所以写多个请求是不实际的。。
monsterxx03
2018-05-19 17:33:23 +08:00
或者你 server 把两文件打到一个压缩包里,client 拉下来自己解压(如果支持的话....
scriptB0y
2018-05-19 17:57:05 +08:00
这个东西是存在的,之前对接过一个 api,对面让我每次请求都要上传一个证书文件,请求 body 里面带有请求体,后来我记得是用的 requests 的 multipart,从 wireshark 抓包发现发出的请求的确是包含一个文件,一个 form。

https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
klesh
2018-05-19 17:59:49 +08:00
@scriptB0y lz 说的是返回,你讲的是发送
scriptB0y
2018-05-19 19:23:10 +08:00
@klesh 从服务器这边来说,就是发送。Request Response 的 header 都可以设置 multipart 的,https://stackoverflow.com/questions/26643354/can-i-serve-a-multipart-http-response-in-flask
dacapoday
2018-05-19 20:05:34 +08:00
多文件打包 zip
klesh
2018-05-19 22:41:03 +08:00
@scriptB0y 原来还有这种操作,学习了。
vipppppp
2018-05-21 10:39:37 +08:00
@monsterxx03
@dacapoday
打包的想法我也有想过,不过我们还需要同时传递几个文件和普通的数据,如果只传输一个打包文件,那么我想数据还需要写在一个文件中,然后客户端拿到文件解压后还需要去解析数据文件,觉得这个过程比较繁琐,所以放弃了这个做法
vipppppp
2018-05-21 10:40:06 +08:00
@scriptB0y
哇,谢谢兄弟了~
还有这种操作!!

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

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

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

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

© 2021 V2EX