首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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 · 66 天前 · 1398 次点击
    这是一个创建于 66 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    12 回复  |  直到 2019-11-15 08:55:56 +08:00
    TimePPT
        1
    TimePPT   66 天前
    数据库为啥不直接转 json
    superrichman
        2
    superrichman   66 天前
    你的规范是什么?
    hs0000t
        3
    hs0000t   66 天前 via Android   ♥ 1
    base64
    kayseen
        4
    kayseen   66 天前
    @TimePPT 需要把 mysql 的数据导出为 excel, 然后我把数据转成 excel 的流给前端
    kayseen
        5
    kayseen   66 天前
    @hs0000t b64 格式也不能直接返回啊...
    kayseen
        6
    kayseen   66 天前
    我现在不需要把查出来的数据保存, 所以现在没有文件, 只有这个数据的 bytes,可以将这个文件的 bytes 直接转为 xxx.xls, 现在不知道怎么把这些 bytes 返回给前端...
    kayseen
        7
    kayseen   66 天前
    @superrichman
    是前端有一个导出 excel 的功能, 然后我把数据查出来,以流的形式返回,
    我现在不需要把查出来的数据保存, 所以现在没有文件, 只有查出来的数据的 bytes,这些 bytes 可以直接转为 xxx.xls, 我现在不知道怎么把这些 bytes 返回给前端...
    superrichman
        8
    superrichman   66 天前   ♥ 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   66 天前
    @kayseen 接口传 json,让前端处理 Excel 导出呢?
    参照这个方案
    https://juejin.im/post/5d1dc5cbe51d45775f516ad0
    kayseen
        10
    kayseen   66 天前
    @superrichman
    老哥,这方法确实成功了,正好我还是用的 flask,十分十分感谢~
    kayseen
        11
    kayseen   66 天前
    @TimePPT
    这样的话会显得有点乱,你看下楼上大哥的方法,我成功了的
    ebingtel
        12
    ebingtel   66 天前
    导出接口 为啥还要做成 json 格式的,直接做成页面不就好了?这样 直接 makr_response 就行了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4205 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 07:33 · PVG 15:33 · LAX 23:33 · JFK 02:33
    ♥ Do have faith in what you're doing.