PythonでWebアプリを簡単に作成するにはBottleが使える

PythonでWebアプリを簡単に作成するにはBottle(GitHub – bottlepy/bottle: bottle.py is a fast and simple micro-framework for python web-applications., MIT License)が使えます。少し確認してみたところ、プラグインがあったり、RDBも使えたりと、充実しています。個人が趣味で自宅内で稼働させるちょっとしたWebアプリだったら、機能も十分で手軽に使えます。備忘録でリンクを記録しておきます。

Bottle: Python Web Framework — Bottle 0.12.9 documentation」に説明があります。特長は下記だとのこと。

  • Routing: Requests to function-call mapping with support for clean and dynamic URLs.
  • Templates: Fast and pythonic built-in template engine and support for mako, jinja2 and cheetah templates.
  • Utilities: Convenient access to form data, file uploads, cookies, headers and other HTTP-related metadata.
  • Server: Built-in HTTP development server and support for paste, fapws3, bjoern, Google App Engine, cherrypy or any other WSGI capable HTTP server.

ルーティング、テンプレート、ユーティリティ、サーバ連携について記載されています。テンプレートについては、人気のmako、jinja2をサポートしているとのこと。サーバ連携については、Google App Engineで動くのですね。WSGIベースなので連携するHTTPサーバーが多いのはありがたいことです。

気になるPythonのバージョンは、「Bottle runs with Python 2.5+ and 3.x.」ということなので、Python 2.7やPython 3.4で動作します。素晴らしいですね。

データベース
データベースについては「List of available Plugins — Bottle 0.12.9 documentation」を見たところ、プラグインに「bottle-sqlite 0.1.2 : Python Package Index」がありました。用途としては、軽量なWebアプリ作成に使おうと思っていたので、これが使えれば十分です。

フォーム
フォームについては「GitHub – wtforms/wtforms: A flexible forms validation and rendering library for Python.」あたりを連携させたいと思う人がいるでしょう。「Tutorial — Bottle 0.12.9 documentation」によると、これを使うときに、FormsDict.decode() を使って文字コードを意識したコーディングが必要だとのこと。

Bottle Utils
Bottle Utils documentation — Bottle Utils 0.3 documentation」というのもあって、便利なユーティリティが用意されています。CSRF対策用の「CSRF protection (bottle_utils.csrf) — Bottle Utils 0.3 documentation」もありますね。

PythonのWebアプリといったときにはFlask(Welcome | Flask (A Python Microframework) で公開されているBSDライセンスベースのFlaskライセンス)の方が人気なのでしょうか。Bottleについて解説している書籍はPythonエンジニア養成読本ぐらいしかないのかな… Flaskの解説本も多くはないのですが、Bottleのものよりは多いようです。

同じタグの記事: Bottle
同じタグの記事: Python
同じカテゴリの記事: General