Python: September 2009 Archives

HDEラボの桜井です。
だいぶ涼しくなりました。

そういえば、9/10にFacebookがPython用Webサーバーフレームワーク「Tornado」をリリースしました。
FriendFeedの基盤となっていて、スケーラブルでノンブロッキングなWebサーバーだとか。

早速ですが、インストールして試してみました。
まず、ここからソースをダウンロードします。
ちなみに、Python2.5、2.6でしか動かないようです。CentOS5.3のPython2.4では文法エラーでビルドに失敗してました。
下記のように導入します。
# tar tornado-0.1.tar.gz
# cd tornado-0.1
# python setup.py install

さっそく、チュートリアルらしきものにしたがってプログラミング。
8888/TCPで待ち受けて、「HELO」と返すだけです。
面倒なのでPythonシェルで。
$ python
Python 2.6.1 (r261:67515, Mar 26 2009, 15:57:10)
[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado.httpserver
>>> import tornado.ioloop
>>> import tornado.web
>>>
>>> class MainHandler(tornado.web.RequestHandler):
...   def get(self):
...     self.write("HELO\n")
...
>>> application = tornado.web.Application([(r"/", MainHandler),])
>>>
>>> http_server = tornado.httpserver.HTTPServer(application)
>>> http_server.listen(8888)
>>> tornado.ioloop.IOLoop.instance().start()

別のターミナルを立ち上げてアクセス。
$ telnet localhost 8888
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.0 200 OK
Content-Length: 4
Etag: "50d7c437b1b17589574e811d5085ed34a4b22340"
Content-Type: text/html; charset=UTF-8
Server: TornadoServer/0.1

HELO
Connection closed by foreign host.


感想としては...
  • Googleのwebappやweb.pyに似ている(と書いてあるし、その通り)
  • applicationを定義してる辺りはTwistedみたい
  • RESTやるならいいんじゃない?
ってところでしょうか?

もうちょっと細かいところを見てみないとわかりませんが、ちょっと楽しみなやつです。
ちなみに、ApacheLicenseです!!

About this Archive

This page is a archive of entries in the Python category from September 2009.

Python: August 2009 is the previous archive.

Python: October 2010 is the next archive.

Find recent content on the main index or look in the archives to find all content.