Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

bottleのredirectとabort

処理エラーやURLミスなどのときに活用したい一連の処理。
最小構成のbottleはこういうモノも外付けパッケージです。
種類としては、特定のURLに飛ばすredirectと自動生成タイプのabortがあります。

実際のところ

abort

特定のエラーコード付きでエラーページを出したい場合はabortを使います

from bottle import route, abort
@route('/restricted')
def restricted():
    abort(401, "Sorry, access denied.")

Redirect

一方、レスポンスコードは兎も角、
特定のURLに直に飛ばしたい場合はredirectを使います。
古いページを隠蔽したい場合なんかでも使い道がありますね。

from bottle import redirect
@route('/wrong/url')
def wrong():
    redirect("/right/url")

優先処理されるので注意!

以下の記述によると自前で用意したコールバックより処理が優先されるようなので注意してください。

Both functions will interrupt your callback code by raising an HTTPError exception.