概要
一般的にウェブサービスを開発する時最初、基本的設定が必要なマスターデーターやテストデーターが必要になります。このブログではジャンゴ(django)のプロジェクトでfixtures
を使ってマスターデーターを生成する方法について説明します。
このブログで紹介するソースコードはGithubに公開されています。下記のリンクを参考してください。
ジャンゴ(django)のプロジェクトの準備
以前のブログシリーズでジャンゴ(django)のプロジェクトを使う方法について説明しました。ジャンゴ(django)を使ってプロジェクトを構成する方法について詳しく内容は下記のリンクを確認してください。
- ジャンゴ(django)インストール
- ジャンゴ(django)のプロジェクト開始
- ジャンゴ(django)のモデル(models)の使い方
- ジャンゴ(django)の管理者ページ
- ジャンゴ(django)のルーティング(Routing)
- ジャンゴ(django)のORM
- ジャンゴ(django)のビュー(View)
- ジャンゴ(django)のフォーム(Form)
- ジャンゴ(django)プロジェクトをヘロク(Heroku)へアップロードする
このブログではジャンゴ(django)のインストールやプロジェクトの設定などについては説明しません。簡単にプロジェクトが進めるレベルで説明します。
下記のコマンドでジャンゴ(django)のプロジェクトを生成します。
django-admin startproject django_jwt
下記のブログを参考してデーターベースやテーブルを生成します。
データーベースの連動が完了されたら下記のコマンドを使って管理者(superuser
)を生成します。
python manage.py createsuperuser
下記のブログを参考してBlog
で言うジャンゴ(djagno)のアプリ(App)とPost
モデル(Model)を生成します。
マスターデーター準備
上のジャンゴ(django)のプロジェクトの準備を勧めたらblog/models.py
が下記のように見えます。
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
published_at = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_at = timezone.now()
self.save()
def __str__(self):
return self.title
私たちはこのモデル(Models)に合うマスターデーター(Master data)を準備してデーターを追加(Seed)する予定です。blog/fixtures/posts-data.json
のファイルを作って下記のように修正します。
[
{
"model": "blog.post",
"fields": {
"author": 1,
"title": "test2",
"content": "test2",
"created_at": "2019-06-04T15:43:29.899",
"updated_at": "2019-06-04T15:43:29.899",
"published_at": "2019-06-04T15:43:28"
}
},
{
"model": "blog.post",
"fields": {
"author": 1,
"title": "test1",
"content": "test1\r\n\r\ntest1",
"created_at": "2019-06-04T15:43:19.760",
"updated_at": "2019-06-04T15:43:19.760",
"published_at": "2019-06-04T15:43:18"
}
}
]
このJSONファイルを見たら分かると思いますが、私たちは2つのテストデーターを入れる予定です。
マスターデーターを入れる(Data Seed)
下記のコマンドで私たちが作ったデーターシード(Data Seed)をデーターベースに入れます。
python manage.py loaddata blog/fixtures/posts-data.json
確認
データーベースツールを使ってデーターがうまく入ったか確認してみます。
もちろん、ジャンゴ(django)の管理画面でも確認ができます。下記のコマンドでジャンゴ(django)のテストサーバーを起動します。
python manage.py runserver
そして管理画面のURL(http://127.0.0.1:8000/admin)に接続したら追加されたデーターが確認できます。
完了
これでジャンゴ(django)のマスターデーターを追加する方法(Data seed)について見てみました。これからはジャンゴ(django)でプロジェクトを進める時、マスターデーターやテストデーターを準備することができるようになりました!
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。