Django 顧客マスタの作り方 ① データベースの生成【Python】【初心者向け】

Django

この記事の最終更新日: 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) + ')>'


マイグレーションする

マイグレーションファイルの作成

マイグレーションとは

マイグレーション(migration)とは、モデルなどの情報を元にテーブルを更新して、最新の状態にする機能です。

今回のようにテーブルが何もない状態から新規作成する場合にも必要な機能です。

ちなみに、migrationとは移転や転居という意味で、渡り鳥はMigratory birdと言います。

まずは、Anaconda Navigotor からターミナルを開きましょう。

マイグレーションファイルはターミナルからコマンドで作成します。

Environmentsからターミナルを開く

次に以下のコマンドで実行します。

Python manage.py makemigrations 名前

名前の部分は半角英字で自由につけて実行しましょう。

(例)’hello’というマイグレーションファイルを作成する

Python manage.py makemigrations hello
エラーが発生した時は

・実行ディレクトリがプロジェクトフォルダのパスと一致しているか確認しましょう。

・コマンドに誤字がないか気をつけて実行しましょう。

・models.pyソースコードに誤字がないか確認しましょう。

エラーが発生せず、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

これでデータベースが生成されました。お疲れ様でした。

次の記事に続きます。

コメント

タイトルとURLをコピーしました