動かざることバグの如し

近づきたいよ 君の理想に

PythonのSinatra的存在、Bottleを試してみる

動機

おまえDjangoに親でも殺されたのかよ

環境

インストール

pip install bottle

Hello World

from bottle import route

@route('/hello')
def hello():
    return "Hello World!"

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

自動更新させたい

run(host='0.0.0.0', port=8080, debug=True, reloader=True)

POSTメソッドを受け取りたい

 @route('/login', method='POST')

または

from bottle import get, post, request

@post('/login')

パラメータを受け取りたい

GETメソッド

:8080/hogeにアクセスするとname=hoge :8080/だとデフォルトのname=nanashi

# -*- coding:utf-8 -*-
from bottle import route, run

@route('/')
@route('/<name>')
def hello(name = "nanashi"):
    return "Hello " + name

run(host='0.0.0.0', port=8080, debug=True, reloader=True)

また?name=hogeのように受け取りたい場合は

request.params.name

または

request.query.name

POSTメソッド

request.params.name

または

request.forms.get('name')

request.paramsはGETとPOST両方に対応しているから楽

アップロードされたファイルを受け取りたい場合は以下の様なフォームを用意して

<form method="post" action="" enctype="multipart/form-data">
    <div class="form-group">
        <input type="file" name="upload" class="form-control">
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-primary">判定</button>
    </div>
</form>
request.files.get('upload')