瓶熊猫返回xls文件

问题描述:

是否有可能在瓶子中定义一条返回文件的路线?瓶熊猫返回xls文件

  1. 我有一个被熊猫访问的mongo数据库。
  2. 熊猫根据请求参数生成一个xls文件。

以上两个步骤清晰易行。 第三步是我遇到问题的那一步。

  1. 定义一个瓶子路线,它将返回一个文件供用户下载。

我不想使用以前生成的静态文件。

在此先感谢。

我对熊猫不太熟悉,但是您需要将xls文件的二进制内容通过Bottle路由发送给用户。修改例如从here为Python 3:

from io import BytesIO 
from bottle import route, response 
from pandas import ExcelWriter 


@route('/get-xlsx') 
def get_xlsx(): 
    output = BytesIO() 
    writer = ExcelWriter(output, engine='xlsxwriter') 
    # Do something with your Pandas data 
    # ... 
    pandas_dataframe.to_excel(writer, sheet_name='Sheet1') 
    writer.save() 
    response.contet_type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' 
    response.add_header('Content-Disposition', 'attachment; filename="report.xlsx"') 
    return output.getvalue() 

当用户单击对应于这条线路的链接,“report.xlxs”文件下载对话框将在其浏览器中打开。

+0

太好了。非常感谢。我会更多地阅读BytesIO。 –

+0

BytesIO是一个类似于内存文件的对象。我猜你甚至可以在没有getvalue()的情况下直接返回它,因为WSGI协议接受类似文件的可迭代对象作为有效载荷。 –