Django + Vue.jsでシステム開発! (8)

Django+Vue.js
この記事は約3分で読めます。
記事内に広告が含まれます。

Python(Django)+Vue.js(Nuxt.js,Vuetify)を使ったシステムの開発です。

今日はデータベースの設計を行います。

djangoにはマイグレーション(migration)という機能がありますので、それを使います。

  1. 最初にModelsファイルを(データの構造を作成)作ります。
  2. 次に作成したModelsファイルからマイグレーションファイルを作成
  3. 最後に作成したマイグレーションファイルをデータベースに適用

となります。
上記の3つは開発中に何度も繰り返すことになりますので覚えておきましょう。

migrationコマンドは2つあり
2つ目のModelsファイルからマイグレーションファイルを作成するコマンド

(venvMitsumori) % python manage.py makemigrations

3つ目の作成したマイグレーションファイルをデータベースに適用するコマンド

(venvMitsumori) % python manage.py migrate

となります。

今回作るデータベースはPCパーツのネットショップ向け見積もりシステムです。商品を選択していくと最後に合計金額が表示されるものです。

テーブルの項目は

  • id (管理番号)
  • category(商品のカテゴリー)
  • name(商品名)
  • description(商品の詳細)
  • price(商品の金額)

の5項目です。それに加えシステムで利用する

  • 作成日
  • 更新日

となります。

では早速作っていきましょう。

スポンサーリンク

models.pyの作成

venvMitsumori > mitsumori > api > models.py

from django.db import models

# Itemテーブルの内容
class Item (models.Model):
    # id = AutoField(primary_key=True)  # 自動的で追加される
    category = models.IntegerField('カテゴリー')
    name = models.CharField('商品名', max_length=255)
    description = models.TextField('詳細', max_length=1000)
    price = models.IntegerField('金額')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

マイグレーションファイルを作成します

(venvMitsumori)  %  python manage.py makemigrations
Migrations for 'api':
  api/migrations/0001_initial.py
    - Create model Items

マイグレーションを実行します。

(venvMitsumori) % python manage.py migrate
Operations to perform:
  Apply all migrations: admin, api, auth, contenttypes, sessions
Running migrations:
  Applying api.0001_initial... OK

以上でテーブルの作成は終わりです。
もしデータ構造や項目が変更になった場合はmodels.pyを修正しコマンドを実行して更新します。

コメント

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