【发布时间】:2020-10-14 12:37:21
【问题描述】:
我可能误解了一些非常基本的东西。我一般是龙卷风和网络服务器的新手。我使用了一些教程和大量谷歌搜索来开始使用,但我仍然发现自己停留在基础知识上。
情况
我在带有 tornado 6.0.4 的 Ubuntu 18.04 服务器上使用 python 3.6.9。
我有一个龙卷风服务器,它通过 tornado.web.RequestHandler 类 get () 函数接受 GET 请求并对其进行一些计算。这一切正常。
我需要 tornado 服务器将结果(一个 numpy 数组)返回给发送请求的客户端。
据我所知,我所做的一切都是同步的,因为我自己没有添加任何异步代码。
简而言之我的代码:
class MainHandler(tornado.web.RequestHandler):
def get(self):
base_data = self.get_argument("base_data")
compute_data(base_data)
#Here I want to return the data back to the client
application = tornado.web.Application(handlers=[ (r"/calculator", MainHandler)])
if __name__ == "__main__":
http_server=tornado.httpserver.HTTPServer(application)
http_server.listen(__PORT__)
tornado.ioloop.IOLoop.instance().start()
问题
我没有关于客户的信息。
我没有任何想法,也找不到任何解释如何从 GET 请求响应客户端的教程。
我尝试了什么
我尝试在 get() 函数的末尾简单地返回 np.array,但我得到了:TypeError: object numpy.ndarray can't be used in 'await' expression
我认为我需要做的是向客户端发出 POST 请求,但我(据我所知)没有客户端的 IP 和端口。
我还随机发现也许我应该使用tornado.ioloop.IOLoop.current().spawn_callback(data),但我猜这是不对的,因为它要求我提供一个可调用函数。
我想要发生的事情
我想将计算的数据发回给请求它的客户端。
提前感谢您提供的任何帮助。我知道我可能误解了龙卷风的基本用途或工作原理,但我找不到任何专门解决这个问题的地方。
【问题讨论】:
标签: python python-3.x tornado