Django

Pythonフレームワーク「Django」を利用したアプリで一覧画面を表示してみた

Pythonフレームワーク「Django」には、一覧画面を表示する際に利用する「ListView」というクラスベースビューがある。

今回は、MySQLのデータベースのテーブルのユーザーを一覧に表示する機能を追加してみたので、そのサンプルプログラムを共有する。

なお、クラスベースビューについては、以下のサイトを参照のこと。
https://di-acc2.com/programming/python/5210/

前提条件

下記記事の実装が完了していること。

Pythonフレームワーク「Django」のクラスベースビュー「TemplateView」「FormView」を利用してみたPythonフレームワーク「Django」には、views.pyに記載した画面遷移処理をクラスで記載できる「クラスベースビュー」がある。...

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

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

demoフォルダ下、templatesフォルダ下の一覧画面(list.html)の内容は以下の通りで、user_dataテーブルから取得したユーザーデータを一覧で表示すると共に、入力画面に遷移するための「データ追加」ボタンを表示している。

また、demoフォルダ下、templatesフォルダ下の入力画面(input.html)の内容は以下の通りで、一覧画面(list.html)に遷移するための「戻る」ボタンを追加している。

さらに、demoフォルダ下、templatesフォルダ下の完了画面(complete.html)の内容は以下の通りで、一覧画面(list.html)に遷移するための「一覧画面に戻る」ボタンを追加している。

また、demoフォルダ下、views.pyの内容は以下の通りで、一覧画面(list.html)を表示するListViewクラスを継承したViewクラスと、一覧画面から入力画面(input.html)にpostリクエストで遷移する処理を追加している。

さらに、demoフォルダ下、urls.pyの内容は以下の通りで、一覧画面(list.html)を表示するパスを追加し、入力画面(input.html)へのパスを修正している。

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

削除または保存していないWordドキュメントの復元方法【4DDiG Windowsデータ復元】ワード(Word)データ等のファイルを誤って削除してしまった場合は、通常はデータの復元ができませんが、4DDiGというソフトウェアを利用...

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

サンプルプログラムの実行結果は以下の通りで、user_dataテーブルから取得したユーザーデータが一覧画面に表示されることが確認できる。

1) 実行前のuser_dataテーブルの中身は、以下の通り。

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

2) コマンドプロンプトでDjangoプロジェクト名のフォルダに移動し、コマンドプロンプトで「python manage.py runserver」コマンドを実行して、Webサーバーを起動する。
サンプルプログラムの実行結果_2

3) Webブラウザを起動し、「http://127.0.0.1:8000/demo/」にアクセスすると、以下のように、user_dataテーブルの中身が一覧画面(list.html)に表示されることが確認できる。ここで「データ追加」ボタンを押下する。
サンプルプログラムの実行結果_3

4) 以下のように、入力画面の表示が確認できる。ここで「戻る」ボタンを押下する。
サンプルプログラムの実行結果_4

5) 以下のように、一覧画面(list.html)に戻ることが確認できる。
サンプルプログラムの実行結果_5

6) 入力画面(input.html)、確認画面(confirm.html)、完了画面(complete.html)の遷移は以下の通りで、前提条件の記事と同じ内容となっている。また、完了画面で「一覧画面に戻る」ボタンを押下すると、一覧画面(list.html)に戻り、登録したデータが表示されることが確認できる。
サンプルプログラムの実行結果_6_1

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

7) 実行後のuser_dataテーブルの中身は以下の通りで、登録したデータが追加されていることが確認できる。

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

要点まとめ

  • Pythonフレームワーク「Django」には、データベースのテーブルの内容を一覧表示するのに便利な「ListView」というクラスベースビューがある。