11-Flask

Flask(Part.48)| 【経費管理アプリケーションへの追加プログラミング】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

  • 経費管理アプリケーションに通帳管理機能を追加する

経費管理アプリケーションへの追加機能

経費管理アプリケーションへの追加機能

ここでは、経費管理アプリケーションに通帳での収支を管理するための機能を追加します。

release-expensesappブランチの作成

Git Bushを立ち上げdevelopブランチから次のコマンドを入力してrelease-expensesappブランチを作成して、ブランチの切り替えを行います。

git checkout -b release-expensesappコマンド

プロンプトに(release-expensesapp)と表示されます。通帳での収支を管理するための機能はこのブランチで作成していきます。

経費管理アプリケーションに必要なファイルの追加作成

Visual Studio Codeのエクスプローラーからexpensesappディレクトリに必要なファイルを作成します。※作成するファイルについて、名前や中身は、今後変更することものもあります。

  • static/css/style.css
  • templates/account_item_form.html
  • templates/account_item_list.html
  • templates/expense_base.html
  • templates/expense_form.html
  • templates/expenses.html
  • templates/manage_account_items.html
  • templates/passbook_form.html
  • templates/passbook.html
  • app.py
  • forms.py
  • models.py

通帳での収支を管理するための機能のプログラミング

経費管理に必要な勘定科目については既に作成済みです。プログラムの内容は経費管理とほとんど変わらないため、経費管理機能を参考に作成します。

経費管理アプリケーションのプログラミング(勘定科目)

models.pyの編集(expensesapp内)

models.pyファイルを次のように編集します。

# 勘定科目のモデル(データベーステーブル)
from sqlalchemy import func  # type: ignore

from apps.common.db import db


class Account(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)

    def __repr__(self):
        return f"<Account {self.name}>"


class Expense(db.Model):
    __tablename__ = "expenses"
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(
        db.DateTime, default=func.now(), server_default=func.now()
    )  # 入力日時
    account_id = db.Column(
        db.Integer, db.ForeignKey("account.id"), nullable=False
    )  # 勘定科目
    account = db.relationship("Account", backref="expenses")
    description = db.Column(db.String(100), nullable=False)  # 摘要
    income = db.Column(db.Integer, default=0)  # 入金(整数型)
    expense = db.Column(db.Integer, default=0)  # 出金(整数型)

    def __repr__(self):
        return f"<Expense {self.id} - {self.description}>"

    def get_created_at_jst(self):
        """JST に変換し、さらに9時間を加算して取得"""
        if self.date is None:
            return None
        return (self.date).strftime("%Y-%m-%d %H:%M")


class Passbook(db.Model):
    __tablename__ = "passbook"
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(
        db.DateTime, default=func.now(), server_default=func.now()
    )  # 入力日時
    account_id = db.Column(
        db.Integer, db.ForeignKey("account.id"), nullable=False
    )  # 勘定科目
    account = db.relationship(
        "Account", backref="passbooks"
    )  # 変更点: 'expenses' → 'passbooks'
    description = db.Column(db.String(100), nullable=False)  # 摘要
    income = db.Column(db.Integer, default=0)  # 入金(整数型)
    expense = db.Column(db.Integer, default=0)  # 出金(整数型)

    def __repr__(self):
        return f"<Passbook {self.id} - {self.description}>"

    def get_created_at_jst(self):
        """JST に変換し、さらに9時間を加算して取得"""
        if self.date is None:
            return None
        return (self.date).strftime("%Y-%m-%d %H:%M")

forms.pyの編集(expensesapp内)

forms.pyファイルを次のように編集します。

この続きはNoteとなります。

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...

RELATED POST
11-Flask

Flask(Part.27)| 【注文管理アプリケーションのプログラミング(3)】

2025年3月20日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.47)| 【日計表示・月次表示アプリケーションの作成】

2025年4月9日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.42)| 【消費税額管理アプリケーションのプログラミング(1)管理者側】

2025年4月4日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.32)| 【.sqlファイルを利用したデータの復元】

2025年3月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.26)| 【注文管理アプリケーションのプログラミング(2)l(1)の解説】

2025年3月19日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site