この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:爽健
更新日時:2018-12-16 14:58:57

タイトル: MySQL/MariaDBへの接続
SEOタイトル: djangoにおけるMySQL/MariaDBへの接続

前提

・MySQLのインストール

・データベースおよびユーザーの作成

※上記の設定がまだの方はこちらを参照して下さい。

 

パッケージのインストール

pip install pymysql

pip install mysqlclient

 

setting.pyの設定

djangoの設定ファイルであるsettings.pyDATABASESでデータベースの接続設定ができます。

settings.py

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'db_name',  # DB名

        'USER': 'user',  # DBユーザー名

        'PASSWORD': 'pass',  # パスワード

        'HOST': 'localhost',  # ホスト名

        'PORT': '3306',  # ポート

        'OPTIONS': {

                'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",

                },    

        }
}

ENGINEではデータベースの種類を選択します。

SQLite:'django.db.backends.sqlite3'

 

OPTIONSで指定したSTRICT_TRANS_TABLESとはDBのレコード挿入時にエラーが発生した場合ステートメントを停止する設定です。

この設定をしないとdjangoのマイグレーション実行時に警告が出ます。

 

manage.pyの設定

DB接続するための記述を追加しましょう。

manage.py

import pymysql

pymysql.install_as_MySQLdb()

 

wsgi.pyの設定

manage.pyと同じ記述を追加しましょう。

※wsgiで動かす環境ではこちらの設定ファイルを参照するため。

 

DBシェルの起動(対話モード)

以下のコマンドを実行することでMySQLに対話モードで接続することが出来ます。

python manage.py dbshell