推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
vipppppp
V2EX  ›  Python

flask 一次响应返回多个文件

  •  
  •   vipppppp · May 19, 2018 · 7382 views
    This topic created in 2922 days ago, the information mentioned may be changed or developed.

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

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

    https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
    klesh
        7
    klesh  
       May 19, 2018 via Android
    @scriptB0y lz 说的是返回,你讲的是发送
    scriptB0y
        8
    scriptB0y  
       May 19, 2018   ❤️ 5
    @klesh 从服务器这边来说,就是发送。Request Response 的 header 都可以设置 multipart 的,https://stackoverflow.com/questions/26643354/can-i-serve-a-multipart-http-response-in-flask
    dacapoday
        9
    dacapoday  
       May 19, 2018   ❤️ 1
    多文件打包 zip
    klesh
        10
    klesh  
       May 19, 2018
    @scriptB0y 原来还有这种操作,学习了。
    vipppppp
        11
    vipppppp  
    OP
       May 21, 2018
    @monsterxx03
    @dacapoday
    打包的想法我也有想过,不过我们还需要同时传递几个文件和普通的数据,如果只传输一个打包文件,那么我想数据还需要写在一个文件中,然后客户端拿到文件解压后还需要去解析数据文件,觉得这个过程比较繁琐,所以放弃了这个做法
    vipppppp
        12
    vipppppp  
    OP
       May 21, 2018
    @scriptB0y
    哇,谢谢兄弟了~
    还有这种操作!!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3000 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 13:27 · PVG 21:27 · LAX 06:27 · JFK 09:27
    ♥ Do have faith in what you're doing.