読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

python版sinatraな軽量WEBフレームワークbottle

bottleはsinatraな軽量WEBフレームワークです。
getメソッドの取扱いレベルまで小分けされているので、限界域まで軽く作ることができます。

導入

例の如く、pipで。依存パッケージは無いように設計されているみたいです。

$ pip install bottle

依存がなく、軽量……ということは直接導入という荒業も。
200kbyte程度なので、ワザワザpipを入れるほどでは……という場合にも重宝。

$ curl -O https://raw.githubusercontent.com/bottlepy/bottle/master/bottle.py

スクリプト本体

以下の構成の、簡単なアプリを考えてみます。

  • "~/hello/"でユーザに挨拶
  • "~/time"で現在時刻

bottleから"get"、"run"、"template"を拝借し、標準ライブラリのtimeを使って以下のように書きます。

from bottle import get, run, template
from time import strftime

@get('/hello/<name>')
def hello(name):
    return template('<b>Hello {{name}}</b>!', name=name)

@get('/time')
def show_time():
    return strftime('<p>%m-%d_%H:%M:%S_%Z</p>')

run(host='localhost', port=8080)

実行

$ python app.py

http://localhost:8080/timeにアクセスすると、"09-03_23:24:14_JST"みたいな文字列が
http://localhost:8080/hello/shuzoだと"Hello shuzo!"てな文字が太字で出てきます。