今日のPython 第25回「sum フィルタを使用して残高表示 」

2024年12月16日月曜日

Python_WEBアプリ編 公開

t f B! P L

記事作成:2024/12/16

管理番号:W008

はじめに

今、PythonでWEBアプリの作成を進めています。少しづつ機能を追加して、ローカルの仮想環境で動作確認をするという作業を地道に行っている状況です。

そして、進捗がある都度、このブログで紹介しています。

前回までの状況

前回は、家計簿ページで誤って不要な情報を追加したときのためにレコードの削除機能を追加しました。

また、削除機能を追加するにあたり、収支情報のリストを加工しやすいようにクラスも併せて導入しました。

テンプレートエンジンを使用してhtml上で、動的に連番を振るところで少し苦労しましたが

今、このような表示になっています。

■画面1■現在の表示


改善等が必要な点

現在の状態では、収支の一覧はありますが、残高表示がありません。

これでは、財産があといくらあるのか、わかりません。



今回の実施内容

そこで今回は、残高表示にチャレンジします。

今、このプロジェクトに関連するファイルは、次のとおりで、◆が今回修正等を施すファイルです。

■関連ファイル■
Pythonファイル
◇main.py サーバから最初に呼び出されるプログラム、バックエンドからテンプレートエンジンでテンプレートHTMLをレンダリングしてページを表示します。
◇KDpay.py 収支データをクラスとして定義
HTMLファイル(テンプレートHTML)
◇index.html テスト用ページ
◆kd.html 家計簿ページ
◇layout.html 各ページの共通部分を抽出したレイアウトテンプレート
CSSファイル
◇index.css ページ装飾用、HTMLファイルから別ファイルとして独立させたもの
javascriptファイル
◇index.js フロントエンドでjavascriptによりページに動きをつけるためのもの、HTMLファイルから別ファイルとして独立させたもの
json ファイル
◇KDjson.json
■■

では、始めます。


残高表示

jinja2のフィルタ機能を使用して、レコードの合計残高を表示します。
このフィルタ機能は、htmlテンプレート上で変数に処理を施して表示することができます。
htmlのコード上で、{{}}内の変数に ' | ' + filter関数を記述するとフィルタが適用されます。変数自体は変更しません。

■コード■ ■解説等■

今回は、フィルタ機能のうち、sumとintを使用します。

sum フィルタを使用して、リスト内のすべての数値の合計を計算し、テンプレートに表示します。

int フィルタを使用して、文字列を数値に変換して、テンプレートに表示します。



実施結果

画面表示

では、ブラウザで表示してみます。
仮想環境ですので

http://127.0.0.1:5000/kakeibo

として表示すると、このように表示されました。




画面中央に残高も表示が追加されていますね。


現在のフォルダとファイルの構成


現在のフォルダとファイルの構成は、下図のようになります。
■図■ ■■

ソースコード

本文では修正部分のみ紹介しています。
全コードはこちらをご覧ください(→参照


おわりに


以上、今回はjinja2のフィルタ機能を使用して、レコードの合計残高を表示してみました。

大きな改良ではありませんでしたが、
少しずつ良くなってきて嬉しいです。

引き続き、改良を重ねていきます。













このブログを検索

アーカイブ

カテゴリー

QooQ