python Tronado不支持流式传输大数据
我需要在PythonRESTAPI中传输巨大的oracle记录集。我正在tornado服务器上运行flask。当我使用tornado流媒体时,dosent工作正常,而在flask原生服务器(werkzeung)上,它工作正常。有人能帮我看一下tornado是否支持流媒体吗? 下面是一个小的代码示例,它只是尝试使用yield进行流式处理python Tronado不支持流式传输大数据,python,flask,tornado,Python,Flask,Tornado,我需要在PythonRESTAPI中传输巨大的oracle记录集。我正在tornado服务器上运行flask。当我使用tornado流媒体时,dosent工作正常,而在flask原生服务器(werkzeung)上,它工作正常。有人能帮我看一下tornado是否支持流媒体吗? 下面是一个小的代码示例,它只是尝试使用yield进行流式处理 import tornado.web from tornado import gen, httpclient import asyncio, json, time
import tornado.web
from tornado import gen, httpclient
import asyncio, json, time
class basicReuqestHandler(tornado.web.RequestHandler):
def get(self):
self.write("Helow World!")
class staticReuqestHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
class StreamingHandler(tornado.web.RequestHandler):
@gen.coroutine
def get(self):
self.write("starting ....")
def stream():
a = 1
for i in range(100):
a = a+i
print(i)
print(json.dumps(i))
yield json.dumps(i)
self.write(stream())
self.write("closing...")
self.finish()
if __name__=='__main__':
app = tornado.web.Application([
(r"/", basicReuqestHandler),
(r"/myPage",staticReuqestHandler ),
(r"/StreamTest", StreamingHandler),
])
app.listen(7000)
tornado.ioloop.IOLoop.current().start()
我犯了错误,所以在这里回答我的问题是为了帮助任何有类似问题的人。 代码如下:
import tornado.web
from tornado import gen, httpclient
import asyncio, json, time
class basicReuqestHandler(tornado.web.RequestHandler):
def get(self):
self.write("Helow World!")
class staticReuqestHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
class StreamingHandler(tornado.web.RequestHandler):
@gen.coroutine
def get(self):
self.write("starting ....")
def stream():
for i in range(100):
print(i)
print(json.dumps(i))
self.write(json.dumps(i))
yield self.flush()
self.write("closing...")
self.finish()
if __name__=='__main__':
app = tornado.web.Application([
(r"/", basicReuqestHandler),
(r"/myPage",staticReuqestHandler ),
(r"/StreamTest", StreamingHandler),
])
app.listen(7000)
tornado.ioloop.IOLoop.current().start()
请向我们展示一些代码…根据您读取/处理源数据的方式,您可能正在阻止Tornado的iLoop。请查找示例代码。我不能流的响应,我给出的范围只是一个例子,只是认为这是生成器,如DB光标。