この記事の最終更新日: 2020年10月31日
今回は、Djangoで顧客マスタを題材にデータベース構築の方法について解説していきます。
テーブルの設計
最初に顧客マスタのテーブルの設計を行います。
項目 | カラム名 | 説明 | データ型 |
---|---|---|---|
名前 | name | 顧客の名前 | テキスト |
プレミアム会員 | flg_premium | プレミアム会員フラグ。 プレミアム会員ならtrue、違うならfalse。 | boolean |
メールアドレス | mail_address | 顧客のメールアドレス。 | テキスト |
性別 | flg_gender | 顧客の性別フラグ。 男性なら1、女性なら2、その他なら3 | 整数値 |
年齢 | age | 顧客の年齢 | 整数値 |
誕生日 | birthday | 誕生日の年月日 | 日付 |
テーブル設計では、最低でも上記の表くらいの情報はまとめておきましょう。
レコードが保存された状態からの項目を修正や追加はとても大変です。
モデルの作成
Djangoの場合、設計書を元に「データベースにテーブルを作る」という作業が必要ありません。
プロジェクトのソースコードを参照して、自動的に生成してくれます。
対象のソースコードは、models.pyというファイルです。このmodels.pyにテーブル定義をしていきます。
モデルクラスの作成
それでは早速、モデルクラスを作成していきます。models.pyに以下のコードを書き加えます。
models.py
from django.db import models
# Create your models here.
class Customer(models.Model):
name = models.CharField(max_length=100)
flg_premium = models.BooleanField()
mail_address = models.EmailField(max_length=200)
gender = models.IntegerField(default=1)
age = models.IntegerField(default=0)
birthday= models.DateField()
def __str__(self):
return '<Customer:id=' + str(self.id) + ', ' + self.name +'(' + str(self.age) + ')>'
マイグレーションする
マイグレーションファイルの作成
まずは、Anaconda Navigotor からターミナルを開きましょう。
マイグレーションファイルはターミナルからコマンドで作成します。
次に以下のコマンドで実行します。
Python manage.py makemigrations 名前
名前の部分は半角英字で自由につけて実行しましょう。
(例)’hello’というマイグレーションファイルを作成する
Python manage.py makemigrations hello
エラーが発生せず、Create model Customerと表示されたらファイル作成完了です。
Migrations for 'hello':
hello/migrations/0001_initial.py
- Create model Customer
マイグレーションを実行
次は作成したマイグレーションファイルを適用してデータベースを更新します。
これもコマンドで実行します。以下のコマンドを実行してください。
(パラメータやファイル名などを指定する必要はありません。下記のコマンドを実行するだけでOKです。)
Pyhton manage.py migrate
問題なければ、ターミナル画面が次のようになります。
Operations to perform:
Apply all migrations: admin, auth, contenttypes, hello, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying hello.0001_initial... OK
Applying sessions.0001_initial... OK
これでデータベースが生成されました。お疲れ様でした。
次の記事に続きます。
大阪のエンジニアが書いているブログ。
コメント