こんにちは!Masaです。
今回の記事から複数回にわたって、Djangoで家計簿アプリを作成していこうと思います。
前回のタスク管理アプリの反省も踏まえてやっていきたいと思います!
それではやっていきましょう!
- Django初心者で簡単なWebアプリケーション作成を考えている人
- Djangoの学び直しをしている人
- Djangoの基礎を身に付けたい人
Django事前準備
Djangoで開発を行うにあたって事前準備が必要です。
やることとしては
- 仮想環境の構築
- Djangoプロジェクトの作成
- Djangoアプリケーションの作成
があります。
各工程は以下の記事を読んで作成してください。
今回、プロジェクト名を”household_app“、アプリケーション名を”money_diary“とします。
アプリケーションまでの作成が終わったら、最初の設定を行っていきます。
まず、言語の日本語化、時間を日本時間に設定します。
“housekeep_app”ディレクトリ内のsettings.py内の以下の部分を変更します。
LANGUAGE_CODE = 'ja' #変更
TIME_ZONE = 'Asia/Tokyo' #変更
これで準備は完了です。
家計簿アプリを考えていきましょう!
家計簿アプリでできることを決める
今回は家計簿アプリで何ができるかを明確にしてから、作成に入りたいと思います。
家計簿アプリでは
- 収入を記録できる(日付、収入の種類、入金場所、金額、メモ)
- 支出を記録できる(日付、支出の種類、出所、金額、メモ)
- 各期間での収支合計が分かる
- 資産の推移をグラフ表示する
ができることを最初の目標にしたいと思います。
作成中で別途追加したい機能があれば、その都度追加していきます!
モデルの作成
最初にモデルを作成しましょう。
作成するモデルは
- 収入のモデル
- 支出のモデル
- 財布や口座のモデル
- 資産推移のモデル
の4つとします。
アプリケーションディレクトリ”money_diary”内にある”models.py”に以下のコードを追加しtます。
from django.db import models
from django.utils import timezone
#収入のモデル
class Income(models.Model):
date = models.DateField(default=timezone.now) #日付
kind = models.CharField(max_length=20) #収入の種類
account = models.CharField(max_length=30) #入金口座
amount = models.IntegerField() #金額
memo = models.TextField(null=True, max_length=100) #メモ
def __str__(self):
return self.kind + str(self.amount)
#支出のモデル
class Expense(models.Model):
date = models.DateField(default=timezone.now) #日付
kind = models.CharField(max_length=20) #支出の種類
account = models.CharField(max_length=30) #出所
amount = models.IntegerField() #金額
memo = models.TextField(null=True, max_length=100) #メモ
def __str__(self):
return self.kind + str(self.amount)
#口座のモデル
class Account(models.Model):
date = models.DateField(default=timezone.now) #日時
name = models.CharField(max_length=20) #口座名
balance = models.IntegerField() #残高
def __str__(self):
return self.name
#資産推移のモデル
class Assets(models.Model):
date = models.DateTimeField(default=timezone.now) #日付
amount = models.IntegerField() #資産総額
def __str__(self):
return self.kind + str(self.amount)
次にアプリケーションディレクトリ内にある”admin.py”に作成したモデルを認識させましょう。
from django.contrib import admin
from .models import (
Income,
Expense,
Account,
Assets,
)
admin.site.register(Income)
admin.site.register(Expense)
admin.site.register(Account)
admin.site.register(Assets)
モデルを有効にしましょう。
以下のコマンドをコマンドラインに入力し、それぞれ実行してください。
python manage.py makemigrations
python manage.py migrate
エラーが起きなければマイグレーション成功です。
まとめ
お疲れさまでした!本日はここまでです!
時間はビューの作成と簡単にテンプレートを作成し、ブラウザ上に表示させたいと思います。
最後まで読んでいただきありがとうございます。
自己学習に役立てていただけたら嬉しく思います
またSNSやブログでシェアしていただくことや、誤植などをコメントで指摘いただけたら幸いです。
次回の記事↓
コメント