V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2019-11-14 18:54:50 +08:00 · 4488 次点击
    这是一个创建于 1616 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    12 条回复    2019-11-15 08:55:56 +08:00
    TimePPT
        1
    TimePPT  
       2019-11-14 19:03:54 +08:00
    数据库为啥不直接转 json
    superrichman
        2
    superrichman  
       2019-11-14 19:07:33 +08:00
    你的规范是什么?
    hs0000t
        3
    hs0000t  
       2019-11-14 19:15:11 +08:00 via Android   ❤️ 1
    base64
    kayseen
        4
    kayseen  
    OP
       2019-11-14 19:26:09 +08:00
    @TimePPT 需要把 mysql 的数据导出为 excel, 然后我把数据转成 excel 的流给前端
    kayseen
        5
    kayseen  
    OP
       2019-11-14 19:26:38 +08:00
    @hs0000t b64 格式也不能直接返回啊...
    kayseen
        6
    kayseen  
    OP
       2019-11-14 19:30:38 +08:00
    我现在不需要把查出来的数据保存, 所以现在没有文件, 只有这个数据的 bytes,可以将这个文件的 bytes 直接转为 xxx.xls, 现在不知道怎么把这些 bytes 返回给前端...
    kayseen
        7
    kayseen  
    OP
       2019-11-14 19:32:10 +08:00
    @superrichman
    是前端有一个导出 excel 的功能, 然后我把数据查出来,以流的形式返回,
    我现在不需要把查出来的数据保存, 所以现在没有文件, 只有查出来的数据的 bytes,这些 bytes 可以直接转为 xxx.xls, 我现在不知道怎么把这些 bytes 返回给前端...
    superrichman
        8
    superrichman  
       2019-11-14 19:49:34 +08:00   ❤️ 1
    不知道你的后端是啥, 如果是 flask 可以参考一下这个
    https://stackoverflow.com/questions/11017466/flask-to-return-image-stored-in-database
    excel 文件把 MIME(Content-Type)类型改成 application/vnd.ms-excel 就可以了.
    如果其他的后端也应该是类似的方法, 在返回的 header 写好这个返回的请求是个什么样的文件, 浏览器就会去下载了.
    TimePPT
        9
    TimePPT  
       2019-11-14 19:55:40 +08:00
    @kayseen 接口传 json,让前端处理 Excel 导出呢?
    参照这个方案
    https://juejin.im/post/5d1dc5cbe51d45775f516ad0
    kayseen
        10
    kayseen  
    OP
       2019-11-14 20:30:51 +08:00
    @superrichman
    老哥,这方法确实成功了,正好我还是用的 flask,十分十分感谢~
    kayseen
        11
    kayseen  
    OP
       2019-11-14 20:31:31 +08:00
    @TimePPT
    这样的话会显得有点乱,你看下楼上大哥的方法,我成功了的
    ebingtel
        12
    ebingtel  
       2019-11-15 08:55:56 +08:00
    导出接口 为啥还要做成 json 格式的,直接做成页面不就好了?这样 直接 makr_response 就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5418 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:14 · PVG 16:14 · LAX 01:14 · JFK 04:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.