Python語言寫成的Web服務器 Tornado 簡介

fmms 13年前發布 | 27K 次閱讀 Python

TornadoFriendFeed 使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具和優化。
Python語言寫成的Web服務器 Tornado 簡介

Tornado 和現在的主流 Web 服務器框架(包括大多數 Python 的框架)有著明顯的區別:它是非阻塞式服務器,而且速度相當快。得利于其非阻塞的方式和對 epoll 的運用,Tornado 每秒可以處理數以千計的連接,這意味著對于實時 Web 服務來說,Tornado 是一個理想的 Web 框架。我們開發這個 Web 服務器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用里每一個活動用戶都會保持著一個服務器連接。(關于如何擴容服務器,以處理數以千計的客戶端的連接的問題,請參閱 C10K problem。)

請參見 Tornado 文檔Tornado 原文文檔(鏡像)以詳細了解該 Web 框架。

下載和安裝

自動安裝: Tornado 已經列入 PyPI ,因此可以通過 pip 或者 easy_install 來安裝。如果你沒有安裝 libcurl 的話,你需要將其單獨安裝到系統中。請參見下面的安裝依賴一節。注意一點,使用 pipeasy_install 安裝的 Tornado 并沒有包含源代碼中的 demo 程序。

手動安裝: 下載 tornado-1.2.1.tar.gz

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

Tornado 的代碼托管在 GitHub 上面。對于 Python 2.6 以上的版本,因為標準庫中已經包括了對 epoll 的支持,所以你可以不用 setup.py 編譯安裝,只要簡單地將 tornado 的目錄添加到 PYTHONPATH 就可以使用了。

安裝需求

Tornado 在 Python 2.5, 2.6, 2.7 中都經過了測試。要使用 Tornado 的所有功能,你需要安裝 PycURL (7.18.2 或更高版本) 以及 simplejson (僅適用于Python 2.5,2.6 以后的版本標準庫當中已經包含了對 JSON 的支持)。為方便起見,下面將列出 Mac OS X 和 Ubuntu 中的完整安裝方式:

Mac OS X 10.6 (Python 2.6+)

sudo easy_install setuptools pycurl

Ubuntu Linux (Python 2.6+)

sudo apt-get install python-pycurl

Ubuntu Linux (Python 2.5)

sudo apt-get install python-dev python-pycurl python-simplejson

Hello, world

以下是經典的 "Hello, world" 示例:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

請參見 Tornado 文檔 以詳細了解該 Web 框架。

討論和支持

你可以在 Tornado 開發者郵件列表中討論和提交 bug。你還可以可以在 Tornado wiki 里面找到更多的資源。

轉自:http://www.tornadoweb.cn/

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!