tornado框架
Tornado是一个 Python 网络框架和异步网络库,最初由FriendFeed开发。通过使用非阻塞网络 I/O,Tornado 可以扩展到数以万计的开放连接,使其成为长轮询、 WebSockets和其他需要与每个用户建立长期连接的应用程序的理想选择 。
利用tornado框架简单实现文件下载功能
import time
import pandas as pd
import tornado.ioloop
import tornado.web
from io import BytesIO
def excel_writer(data_info_df):
# 生成一个空ExcelWriter对象
out = BytesIO()
writer = pd.ExcelWriter(out, engine='xlsxwriter')
# 写入数据
data_info_df.to_excel(excel_writer=writer, index=False)
# 保存数据
writer.save()
return out
class MainHandler(tornado.web.RequestHandler):
def get(self):
# 创建测试对象
excel_output = excel_writer(pd.DataFrame(columns=["测试"])).getvalue()
# 文件名称
excel_name = "c.xlsx"
# 设置头信息
self.set_header('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
self.set_header('Content-Disposition', 'attachment; filename=' + excel_name)
# 写入对象
self.write(excel_output)
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
这个例子没有使用 Tornado 的任何异步特性