Pythonの軽量フレームワークBottleを試してみた

リクエストのルーティングだけしてくれればいいよ、っていう状況で使うフレームワークを探していて出会ったのがBottleでして、面白そうだったので試してみました。

インストールはpip install bottle しただけ。Pythonのバージョンは2.7.5で、Bottleは0.12.5 が入りました。

# -*- coding:utf-8 -*-

from bottle import (
    run,
    route,
    default_app
)


@route('/')
def home():
    return 'Hello Bottle.'


@route('/hello/<param:re:[a-zA-Z]+>')
def hello(param):
    return 'Hello {0}.'.format(param)

if __name__ == "__main__":
    run(host="localhost", port=8080, debug=True, reloader=True)
else:
    application = default_app()

上記をapp.pyとして保存し、起動するのは

python app.py

でOK。

http://127.0.0.1:8080
http://127.0.0.1:8080/hello/World

でアクセスできます。

uWSIGIと起動させたい、という場合も

uwsgi –http :8080 –file app.py

で起動できます。あ、uWSGIのパラメーターは一例です。socketでもちゃんと起動します。

速度に関してはPython、go、Ruby、PHPの各フレームワークでのベンチマークを取って公開されている方がいらっしゃるので、そちらをご覧いただければ。

シンプルなAPIだけとか、2〜3ページくらいのコンテンツだったら十分だと思います。Webアプリ一本作る、ってなるんだったらやっぱりDjangoかPyramid使いたいなぁ。