python - 我在其中托管使用​​ Tornado 网络服务器开发的应用程序

标签 python google-app-engine webserver hosting tornado

是否有任何托管服务可以托管使用 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/

相关文章:

google-app-engine - 如何将 Google 凭据传递给 Google pub sub

java - 如何在重建时不丢失本地 GAE 数据存储中的数据

.htaccess - 如何从 Apache 目录列表中的根文件夹中删除 'Parent Directory' 链接

python - 检索 numpy 数组中具有特定值的随机项的索引

python - 在带有python2.6的windows7上使用python dragonfly的问题

google-app-engine - 带有 SignedURL 的 CORS

c# - 简单的 Web 服务器 C#

asp.net - 如何为ASP.NET打印与phpinfo()类似的信息?

python - CNTK Python 如何将多个特征传递到模型中

python - 月份开始日期和结束日期