Djangoチュートリアルをしてみる②


さて、今回はチュートリアル2に移りたいと思います!

まずはデータベースの設定から行っていきます。

Djangoには標準でSQLiteが入っているらしいですが、今回はPostgreを使っていきたいと思います。

データベースの設定


mysite/settings.pyを開き、「DATABASES」の中身を以下の通り書き換えます。
また、あらかじめデータベースは作成しておいてください。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'データベース名',
        'USER': 'ユーザ名',
        'PASSWORD': 'パスワード',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

それではデータベースにテーブルを作成していきたいと思います。

$ python manage.py migrate

これで、settings.pyのINSTALLED_APPSで指定してる全てのアプリケーションが実行されます。

次にModelを作成していきます。

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

上記のコードでは、QuestionテーブルとChoiceテーブルを定義しています。

そして、mysite/settings.pyのINSTALLED_APPSに'polls.apps.PollsConfig',を追記することで、Djangoにpolls/apps.pyのPollsConfigを認識させます。

以下のコマンドを実行します。

$ python manage.py makemigrations polls

pollsの下に0001_initial.pyというファイルが作成されました。
中には、polls/models.pyで定義した内容が記載されているのが確認できると思います。
こうすることで、Djangoのモデルに変更があったことをマイグレーション の形で保存出来ます。

それでは実際にここで作成したマイグレーションをもとに、実際にテーブルを作成していきたいと思います!

$ python manage.py sqlmigrate polls 0001

※この時点ではまだテーブルは作成されていません。
下のコマンドを入力することによりテーブルが作成されます。

$ python manage.py migrate

これでテーブルが作成されたと思います!