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': '', # 同上。そのパスワード
}
}

 

●ドライバのインストール

pythonMySQLに接続するためのドライバをインストールする必要がある

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