zoukankan      html  css  js  c++  java
  • Tornado服务器的学习

        Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。

    Tornado的安装:

    手动安装: 下载 tornado-2.0.tar.gz

    tar xvzf tornado-2.0.tar.gz
    cd tornado-2.0
    python setup.py build
    sudo python setup.py install

    Tornado 的代码托管在 GitHub 上面。对于 Python 2.6 以上的版本,因为标准库中已经包括了对 epoll 的支持,所以你可以不用 setup.py 编译安装,只要简单地将 tornado 的目录添加到 PYTHONPATH 就可以使用了。当然在安装Torando之前你需要安装PycURL以及simplejson。

    主要模块

    • web - FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能
    • escape - XHTML, JSON, URL 的编码/解码方法
    • database - 对 MySQLdb 的简单封装,使其更容易使用
    • template - 基于 Python 的 web 模板系统
    • httpclient - 非阻塞式 HTTP 客户端,它被设计用来和 web 及 httpserver 协同工作
    • auth - 第三方认证的实现(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
    • locale - 针对本地化和翻译的支持
    • options - 命令行和配置文件解析工具,针对服务器环境做了优化

    底层模块

    • httpserver - 服务于 web 模块的一个非常简单的 HTTP 服务器的实现
    • iostream - 对非阻塞式的 socket 的简单封装,以方便常用读写操作
    • ioloop - 核心的 I/O 循环

    Tornado 的 Web 程序会将 URL 或者 URL 范式映射到 tornado.web.RequestHandler 的子类上去。在其子类中定义了get() 或 post() 方法,用以处理不同的 HTTP 请求。

    下面的代码将 URL 根目录 / 映射到 MainHandler,还将一个 URL 范式 /story/([0-9]+) 映射到 StoryHandler。正则表达式匹配的分组会作为参数引入 的相应方法中:

    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("You requested the main page")
    
    class StoryHandler(tornado.web.RequestHandler):
        def get(self, story_id):
            self.write("You requested the story " + story_id)
    
    application = tornado.web.Application([
        (r"/", MainHandler),
        (r"/story/([0-9]+)", StoryHandler),
    ])
  • 相关阅读:
    nginx:安装成windows服务
    org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
    数据库中间件
    架构策略
    谈判
    设计模式 总结 常用10种
    08 状态模式 state
    07 策略模式 strategy
    06 命令模式(不用)
    05 观察者模式 Observer
  • 原文地址:https://www.cnblogs.com/huangxiaohen/p/3309556.html
Copyright © 2011-2022 走看看