是否有任何托管服务可以托管使用 Tornado 开发的简单应用程序。(就像我们在 Google App Engine 中托管一样)。是否可以托管在 Google App Engine 上?。应用程序就像一些学生数据(添加、删除、搜索等)。我使用 python 开发。
提前致谢
最佳答案
完全可以在 App Engine 上托管 Tornado 应用程序;但是,您需要记住一些注意事项:
App Engine 通过 WSGI 部署所有内容,这意味着您无法利用 Tornado 的异步功能,前提是 WSGI 在设计上是异步的。如果您可以接受这一点,则需要使用
WSGIAdapter
包装您的应用程序:app = tornado.web.Application(url_list, **server_settings) if __name__ == '__main__': # start the server if run directly import tornado.httpserver http_server = tornado.httpserver.HTTPServer(app) http_server.listen(8080, address='localhost') tornado.ioloop.IOLoop.instance().start() else: # wrap as WSGI import tornado.wsgi app = tornado.wsgi.WSGIAdapter(app)
App Engine 要求在您的源代码中提供所有特定于应用程序的库,因此您无法使用
virtualenvs
也无法通过pip
安装库,并且您的所有模块必须是纯Python。最好的方法是有一个特殊的目录,不被源代码管理跟踪,并使用 pip install -U -t lib/-rrequirements.txt 在本地安装所有内容(假设该目录名为lib
。当然,您需要通过将其添加到应用程序配置中的某个位置来让您的代码了解此目录:sys.path.insert(0, os.path.join(os.path.abspath('.'), 'lib'))
关于python - 我在其中托管使用 Tornado 网络服务器开发的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556744/