推荐学习书目
› 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
kayseen
V2EX  ›  Python

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

  •  
  •   kayseen · Nov 14, 2019 · 5477 views
    This topic created in 2556 days ago, the information mentioned may be changed or developed.

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

    12 replies  •  2019-11-15 08:55:56 +08:00
    TimePPT
    TimePPT
    Nov 14, 2019
    1
    数据库为啥不直接转 json
    superrichman
    superrichman
    Nov 14, 2019
    2
    你的规范是什么?
    hs0000t
    hs0000t
    Nov 14, 2019 via Android❤️1
    3
    base64
    kayseen
    kayseen
    OP
    Nov 14, 2019
    4
    @TimePPT 需要把 mysql 的数据导出为 excel, 然后我把数据转成 excel 的流给前端
    kayseen
    kayseen
    OP
    Nov 14, 2019
    5
    @hs0000t b64 格式也不能直接返回啊...
    kayseen
    kayseen
    OP
    Nov 14, 2019
    6
    我现在不需要把查出来的数据保存, 所以现在没有文件, 只有这个数据的 bytes,可以将这个文件的 bytes 直接转为 xxx.xls, 现在不知道怎么把这些 bytes 返回给前端...
    kayseen
    kayseen
    OP
    Nov 14, 2019
    7
    @superrichman
    是前端有一个导出 excel 的功能, 然后我把数据查出来,以流的形式返回,
    我现在不需要把查出来的数据保存, 所以现在没有文件, 只有查出来的数据的 bytes,这些 bytes 可以直接转为 xxx.xls, 我现在不知道怎么把这些 bytes 返回给前端...
    superrichman
    superrichman
    Nov 14, 2019❤️1
    8
    不知道你的后端是啥, 如果是 flask 可以参考一下这个
    https://stackoverflow.com/questions/11017466/flask-to-return-image-stored-in-database
    excel 文件把 MIME(Content-Type)类型改成 application/vnd.ms-excel 就可以了.
    如果其他的后端也应该是类似的方法, 在返回的 header 写好这个返回的请求是个什么样的文件, 浏览器就会去下载了.
    TimePPT
    TimePPT
    Nov 14, 2019
    9
    @kayseen 接口传 json,让前端处理 Excel 导出呢?
    参照这个方案
    https://juejin.im/post/5d1dc5cbe51d45775f516ad0
    kayseen
    kayseen
    OP
    Nov 14, 2019
    10
    @superrichman
    老哥,这方法确实成功了,正好我还是用的 flask,十分十分感谢~
    kayseen
    kayseen
    OP
    Nov 14, 2019
    11
    @TimePPT
    这样的话会显得有点乱,你看下楼上大哥的方法,我成功了的
    ebingtel
    ebingtel
    Nov 15, 2019
    12
    导出接口 为啥还要做成 json 格式的,直接做成页面不就好了?这样 直接 makr_response 就行了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1018 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 22:54 · PVG 06:54 · LAX 14:54 · JFK 17:54
    ♥ Do have faith in what you're doing.