【Python】Webアプリ開発のためにBottleをインストールする

【Python】Webアプリ開発のためにBottleをインストールする プログラミング

「PythonでWebアプリケーションを開発したい」
「Flask以外のフレームワークを使ってみたい」

本記事の内容

  • Bottleとは?
  • Bottleのシステム要件
  • Bottleのインストール
  • Bottleの動作確認

それでは、上記に沿って解説していきます。

Bottleとは?

Bottleは、Webアプリケーションフレームワークです。
そして、Pythonのライブラリとして公開されています。

ここまでの説明なら、単純で済みます。
しかし、Bottleを理解するためには以下の知識が必要です。

  • Webサーバー
  • アプリケーションサーバー
  • WSGI(仕様)

WSGIについては、次の記事で説明しています。

BottleはFlaskと似ています。
触った感じでは、BottleはFlaskはほとんど同じです。

よって、Flaskを理解すればBottleを理解したことになります。
それぐらい似たようなモノです。
もちろん、細部では異なりますけどね。

以上、Bottleについて説明しました。
次は、Bottleのシステム要件を確認しましょう。

Bottleのシステム要件

現時点(2021年12月)でのBottleの最新バージョンは、0.12.19となります。
この最新バージョンは、2020年11月12日にリリースされています。
1年ほどの間、メンテナンスされていない状況です。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
Pythonコードのみでされており、OS依存の箇所はありません。

  • Windows
  • macOS
  • Linux

そして、サポート対象となるPythonのバージョンは以下。

  • Python  2.5
  • Python  2.6
  • Python  2.7
  • Python  3.2
  • Python  3.3
  • Python  3.4
  • Python  3.5
  • Python  3.6
  • Python  3.7

一応、上記が公式に記載されています。
これって、Pythonバージョンは問わないというレベルですね。

基本的には、OS・Pythonバージョンは問わないと言えます。
よって、Bottleのシステム要件は特に注意すべき点はありません。

以上、Bottleのシステム要件を説明しました。
次は、Bottleをインストールしていきます。

Bottleのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.9.9

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        21.3.1
setuptools 59.6.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Bottleのインストールです。
Bottleのインストールは、以下のコマンドとなります。

pip install bottle

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

$ pip list
Package    Version
---------- -------
bottle     0.12.19
pip        21.3.1
setuptools 59.6.0
wheel      0.36.2

Bottleには、依存するパッケージが存在していません。
その点では、既存環境にも容易に導入することが可能と言えます。

以上、Bottleのインストールを説明しました。
次は、Bottleの動作確認を行います。

Bottleの動作確認

動作確認用のコードです。
app.pyとしてスクリプトを保存します。

app.py

from bottle import route, run, template

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

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

コードが正常に動作した場合は、以下のように表示されます。

「http://localhost:8888/」にアクセスします。

$ python app.py
Bottle v0.12.19 server starting up (using WSGIRefServer())...
Listening on http://localhost:8888/
Hit Ctrl-C to quit.

404エラーが出ています。
でも、これは正しい動作です。

コード上で指定したのは、以下のパスだけでした。

@route('/hello/<name>')

よって、このパスにアクセスしないといけません。
ということで、次のようなURLにアクセスしてみましょう。
「http://localhost:8888/hello/test」

想定通りの動きです。
一応、2バイト文字も試しておきます。

問題ありません。
なお、トップページにアクセスするには以下のコードを追加。

@route('/')
def top():
    return 'トップページ'

これを追加して、再起動(Ctrl-Cで停止→app.py起動)します。

URLマッピング(ルーティング)は、Flaskとほぼ同じです。
というより、URLマッピングはどのフレームワークでも似たようなモノになります。

あと、上記コードを実行した際にエラーが出る場合があります。
出る可能性の高いエラーは、以下。

OSError: [Errno 98] Address already in use

ポート8888が、すでに利用されているということです。
このような場合は、空いているポート番号を指定します。

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

そうすれば、上記のエラーは出なくなります。

以上、Bottleの動作確認を説明しました。

タイトルとURLをコピーしました