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
これでテーブルが作成されたと思います!