Flask

Pythonフレームワーク「Flask」を利用して複数画面をもつWebアプリケーションを作成してみた

Flaskとは、Pythonで開発する際のWebフレームワークの1つで、HTMLファイル内ではテンプレートエンジンである Jinja2を利用することで、条件に基づいて表示を分岐することができる。

今回は、入力画面・確認画面・完了画面の3画面を含み、HTMLオブジェクトとしてテキストボックス・ラジオボタン・チェックボックス等を含むWEBアプリケーションを作成してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事のFlaskによる環境構築と実装が完了していること。

Pythonフレームワーク「Flask」を利用したWebアプリケーションを作成してみたFlaskは、Pythonで開発する際のWebフレームワークの1つで、マイクロフレームワーク(軽量で必要最低限の機能が搭載されているフレ...

サンプルプログラムの作成

作成したサンプルプログラムの構成は、以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加・変更したプログラムである。

input.htmlの内容は以下の通りで、入力画面を作成している。なお、(確認画面から戻ってきて)form_dataが存在する場合は、その値を表示するようにしている。

また、confirm.htmlの内容は以下の通りで、確認画面を作成している。入力画面の値を表示すると共に、他画面にhidden属性で各項目値を送信 できるようにしている。

さらにcomplete.htmlの内容は以下の通りで、完了画面を作成している。

また、views.pyの内容は以下の通りで、各画面でボタンが押下された場合の処理を定義している。

さらに、demo.jsの内容は以下の通りで、確認画面で各ボタンが押下された場合の、views.py内のメソッド呼出を行っている。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/python/tree/master/make-flask-web-somescreen/



フリエン(furien)は多くの案件を保有しフリーランス向けサービスも充実しているエージェントだったフリエン(furien)は、ITフリーランス(個人事業主)エンジニア専門のエージェントであるアン・コンサルティング株式会社が運営する業界...

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) コマンドプロンプトでserver.pyが入っているフォルダに移動し、server.pyを実行する。
サンプルプログラムの実行結果_1

2) Webブラウザで「http://127.0.0.1:5000/」とアクセスすると、以下のように、入力画面が表示される。
サンプルプログラムの実行結果_2

3) 以下のように、入力画面で各項目を指定し「確認」ボタンを押下すると、確認画面に入力画面の内容が表示される。さらに「戻る」ボタンを押下すると、入力画面に戻り入力値が復旧されることが確認できる。
サンプルプログラムの実行結果_3_1

サンプルプログラムの実行結果_3_2 サンプルプログラムの実行結果_3_3

4) 以下のように、メモを入力しないで「確認」ボタンを押下した場合も、確認画面に入力画面の内容が表示される。さらに「送信」ボタンを押下すると、完了画面に遷移することが確認できる。
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2 サンプルプログラムの実行結果_4_3

要点まとめ

  • Flaskでのルーティング(リクエスト先のURIと実際に処理する関数を紐づけること)は、views.py内で@app.route()関数を利用することで実現できる。
  • Flask のHTMLファイル内ではテンプレートエンジンである Jinja2を利用することで、条件に基づいて表示を分岐することができる。