Python学院
メールマガジンバックナンバー

vol.57

  • コツ・知識
  • メールマガジン

Python(Bottle)でWebアプリケーションを作ってみた!
Django・Flask・Bottleの違いもご紹介!

今回のメルマガのテーマは「Python(Django・Flask・Bottle)を用いたWebアプリケーション開発」です。

(約5分で読めます)

~~~~~~~~~目次~~~~~~~~~
1、Webアプリケーションでどのようなことができるのか?
2、PythonでWebアプリケーションを作成できるフレームワーク3選をご紹介!
3、Webアプリケーションを作ってみよう!
4、おわりに
~~~~~~~~~~~~~~~~~~~

1.Webアプリケーションでどのようなことができるのか?

■Webアプリケーションとは?
インターネット上で利用できるアプリケーションのことです。 アプリケーションをインストールする必要がなく、インターネットに接続していれば、 いつでも使用することができます。

■Webアプリケーションでできること
Web上にはさまざまなWebアプリケーションがあります。 具体例を以下に記載します。
・飲食店や美容室、病院などを予約する
・ユーザーがオンラインで学習することができ、学習状況を管理する
・商品や資材などの在庫を管理する など

■Webアプリケーションを自作することのメリット
・プログラミングの学習意欲が向上する
比較的簡単に成果物を作成できるので、自身の頑張りが目に見えて分かるためです。

・Todoリストなど、自身で使用できるアプリケーションも作成できる
Webアプリケーションというと、企業が開発や依頼を行う印象が強いですが、 自身で使いたいものを作成することもできます。 また自作するため、自分の業務に合わせてカスタマイズすることもできます。

・ベンダーなどの専門家の話を理解しやすくなる
アプリケーションの開発は専門的な知識が多く必要になります。 開発する側の話を理解できるようになることで、ミスマッチを防ぐことができます。


2.PythonでWebアプリケーションを作成できるフレームワーク3選をご紹介!

フレームワークとは、Webアプリケーションを作成する際に、 簡単に作成ができるよう機能がひとまとめになった便利なツールです。

フレームワークには、必要な機能が一通り揃っている「フルスタックフレームワーク」と、 機能があまり多くない分シンプルな「マイクロウェブアプリケーションフレームワーク」があります。 以下で紹介する3つのフレームワークのうち、Djangoは前者、FlaskとBottleは後者です。

■Django
特徴:
・中規模以上のWebアプリの構築に向いている
・以下2つのフレームワークに比べ、処理速度は遅め
・実務レベルのツールを作るのに向いている
・様々な機能が付帯している
・一度機能の設定方法を学べば、ほかの機能設定に応用できる

Djangoにつきましては、弊社でも研修の取り扱いがございます。
詳細は、以下のURLをご確認ください。
・Python学院~Webアプリケーション開発編/Djangoとデータベースの連携を学ぶ(3日間)
https://www.insource.co.jp/bup/bup_python_application.html

■Flask
特徴:
・DjangoとBottleの間の位置づけ
・Djangoに比べて処理速度が速く軽量
・Djangoに比べるとシンプル

■Bottle
特徴:
・PythonでWebアプリケーションを作成できるフレームワークの中では、最もシンプル
・Flaskよりも処理速度が速く軽量
・最低限の機能しかない


3.Webアプリケーションを作ってみよう!

■作成するWebアプリケーションの紹介
今回は、2章で紹介した「Bottle」を用いて、 合計金額と人数から割り勘料金を出すシンプルなWebアプリケーションを作成しました。
以下に実際の表示画面と結果を載せています。



上記の画面では、3,000円を4人で割った金額として、1人750円となっています。

最近の外食業界でもDXが推進しており、 合計金額や何人で割り勘にしたら1人当たりの費用はいくらか分かるようになっていることもあります。 それと似た機能を実際に作成してみました。

■コードのご紹介
今回のコードは、以下の方を対象にしております。
①最低限のPythonの知識がある
1日でPythonの基礎知識を学べる研修はコチラ
②「Jupyter Notebook」などでPythonのコードを書ける環境にある

また、以下のコードでは外部ライブラリである「Bottle」のインストールが必要になります。
「pip install bottle」をコマンドプロンプトやターミナルでインストールしてから、 お試しください。

〈コード〉
#①ライブラリ(Bottle)のインポート
from bottle import get, post, request, run

#②情報の取得(入力)
@get('/')
def circle_area():
    return '''
        <form action="/calc" method="post">
            合計はいくら? <input name="total" type="text" />
            何人?<input name="member" type="text" />
            <input value="計算" type="submit" />
        </form>
    '''

#③情報の計算と出力
@post('/calc')
def splitting_the_cost():
    t = request.forms.get('total')
    m = request.forms.get('member')
    print(type(t))
    print(type(m))
    calc = int(t) / int(m)
    return "割り勘すると、1人:" + str(calc) + "円"

#④実行
run(host='localhost', port=8080, debug=True)
上記を実行いただくと以下の画面が出てきます。


赤い四角で囲んだURLを押していただくと、 金額と人数を聞かれる画面に飛ぶことができます。

※PCの環境によっては、実行できない場合もございますので、 予めご了承くださいませ。

■コードの解説
コードがどのような動きをしているのかを、 簡単にご紹介いたします。

①ライブラリ(Bottle)のインポート
「Bottle」をインポートし、Bottleの機能を使用できるようにします。

②情報の取得(入力)
ここでは、「合計はいくら?」「何人?」を入力する枠と、 「計算」という入力内容をPCに伝えるボタンを作成しています。

③情報の計算と出力
「計算」ボタンから渡された合計金額と人数を計算します。 そして「return」という部分で、「割り勘すると、1人:〇円」と表示します。

④実行
「run」という部分があることで、②③の表示や計算が行えます。


4.おわりに

今回は、「Pythonを用いたWebアプリケーションの作成方法」についてお伝えしました。Webアプリケーションについてや、各フレームワークについて、なんとなく理解できたのではないでしょうか。3章のコードも試してみてください。

本日も最後までお読みいただき、ありがとうございます!
それでは、次回もお楽しみに!


関連研修