Django

Djangoでmysqlを使う。ついでにutf8mb4も

データベース設定

初期の状態ではsqlite

Djangoでデータベース設定をする際はmysite/settings.pyで設定します。

mysqlを使用する場合は以下のように設定します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<DB名>',
        'USER': '<ユーザ名>',
        'PASSWORD': '<パスワード>',
        'HOST': '<サーバ名>',
        'PORT': '3306',
    }
}

 

Djangoでmysqlを利用するためにはモジュールmysqlclientが必要になりますのでインストールします。

pip install mysqlclient

 

上記の設定が完了したら以下のコードを実行します。

python manage.py migrate

これで初期データベスが作成されます。

Django + mysqlでutf8mb4を使う

 

絵文字とかを入力/出力で利用するためにはmysqlのcharsetをutf8mb4にするだけでは入力/出力時にエラーが発生します。

Django側にも一つ以下の設定が必要となります。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<DB名>',
        'USER': '<ユーザ名>',
        'PASSWORD': '<パスワード>',
        'HOST': '<サーバ名>',
        'PORT': '3306',
        'OPTIONS': {
            'charset': 'utf8mb4', #OPTIONSを追加する
        },
    }
}

 

DjangoでModelの作成Modelの作成 Djangoは最近の主流であるコードファーストでDB(テーブル)を作成します。 polls/models.py ...