HDEラボの桜井です。
だいぶ涼しくなりました。
そういえば、9/10にFacebookがPython用Webサーバーフレームワーク「Tornado」をリリースしました。
FriendFeedの基盤となっていて、スケーラブルでノンブロッキングなWebサーバーだとか。
早速ですが、インストールして試してみました。
まず、ここからソースをダウンロードします。
ちなみに、Python2.5、2.6でしか動かないようです。CentOS5.3のPython2.4では文法エラーでビルドに失敗してました。
下記のように導入します。
さっそく、チュートリアルらしきものにしたがってプログラミング。
8888/TCPで待ち受けて、「HELO」と返すだけです。
面倒なのでPythonシェルで。
別のターミナルを立ち上げてアクセス。
感想としては...
もうちょっと細かいところを見てみないとわかりませんが、ちょっと楽しみなやつです。
ちなみに、ApacheLicenseです!!
だいぶ涼しくなりました。
そういえば、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です!!



