美文网首页tornado
1、Tornado Web Server

1、Tornado Web Server

作者: 宝宝家的隔壁老王 | 来源:发表于2018-03-28 15:28 被阅读76次

    Tornado Web Server

    tornado 是 python 的 web 框架,同时也是异步网络库,源代码由 FriendFeed 开发。通过使用非阻塞的网络 I/O,tornado 可以扩展到成千上万的连接,使其适合长轮询,WebSockets,以及需要用户长连接的应用。

    Hello,world
    • 如下 "Hello,world" 是一个简单 tornado 的 web app。
    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")
    
    def make_app():
        return tornado.web.Application([
            (r"/", MainHandler),
        ])
    
    if __name__ == "__main__":
        app = make_app()
        app.listen(8888)
        tornado.ioloop.IOLoop.current().start()
    
    • 上例没有使用 tornado 的异步特性
    Threads and WSGI
    tornado 和大多数 python 的 web 框架不一样,它不依赖于 WSGI,并且通常一个进程只 run 一个线程。在后面的 User's guide 章节会介绍 tornado 的异步编程方式。
    
    tornado.wsgi 模块实现了对 WSGI 的支持,但是它不是未来发展的核心,并且大多数应用应该直接使用 tornado 的接口 (tornado.web) 代替使用 WSGI。
    
    正常情况下,tornado 的代码不是线程安全的。在 tornado 其他线程中进行调用唯一安全的方法是 IOLoop.add_callback。你也可以在其他线程中使用 IOLoop.run_in_executor 去异步调用一个阻塞函数,但是注意传递给 run_in_executor 的函数应该避免引用任何 tornado 对象。run_in_executor 是同阻塞代码交互推荐的方式。
    
    Installation
    pip install tornado
    
    tornado 可以通过 pip 安装,但是相关的 demo 并不会下载;可以通过 git clone 远程的仓库获取。
    
    • Prerequisites
    tornado 运行在 python 2.7 以及 3.4+. python 2.7.9中关于 ssl 模块的更新也是必须的。
    
    Platforms
    tornado 应该运行在任何 类Unix 的平台,尽管为了最佳的性能和可伸缩性,只有 Linux(epoll) 和 BSD(qkueue) 被推荐在生产环境开发。tornado 仍然可以运行在 windows 平台,此配置不被官方支持,但仍可以供开发者开发。
    没有 tornado 的 IOLoop 的 reworking 接口,不可能添加一个原生的 windows 的 tornado IOLoop 实现 或者在 AsyncIO or Twisted 框架下利用 windows 的 IOCP。
    

    下一篇: 2.1、User’s guide (Introduction)

    相关文章

      网友评论

        本文标题:1、Tornado Web Server

        本文链接:https://www.haomeiwen.com/subject/zktucftx.html