djangoでのmysql環境構築
djangoのデフォルトのDB環境はsqlite3の環境の為、mysqlを使用するには設定が必要である。
●DBの作成
mysqlをインストールし、接続をしてから繋げる
$ mysql -u root
...
mysql>
以下のコマンドでDBを作成
mysql> create database database_name;
実行したら、作成できているか確認
mysql> show databases;
●djangoの設定の編集
djangoのsetting.pyのファイルを編集
DATABASEの部分を編集
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 変更
'NAME': 'database_name', # プロジェクトで使用するデータベース名
'USER': 'root', # パソコンにインストールしたMySQLのユーザー名
'PASSWORD': '', # 同上。そのパスワード
}
}
●ドライバのインストール
pythonがMySQLに接続するためのドライバをインストールする必要がある
Djangoの推奨ドライバはmysqlclientである為、mysqlclientを採用する。
$ pip install mysqlclient
●モデルの作成
Djangoにおいてはマイグレーションは完全にモデルのファイルから作成される。
以下のようにmodels.pyから編集。
※Django公式リファレンスのpollsアプリを参照
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) #数字フィールド
その後、mysite/setting.pyにて、polls.apps.PollsConfig',を追加、
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
その後下記のコマンドでmodelを作成
$ python manage.py makemigrations polls
●データベースの構築
下記のコマンドでデータベースを構築
$ python manage.py makemigrations
$ python manage.py migrate