タイトル: MySQL/MariaDBへの接続
SEOタイトル: djangoにおけるMySQL/MariaDBへの接続
前提
・MySQLのインストール
・データベースおよびユーザーの作成
※上記の設定がまだの方はこちらを参照して下さい。
パッケージのインストール
pip install pymysql pip install mysqlclient |
setting.pyの設定
djangoの設定ファイルであるsettings.pyのDATABASESでデータベースの接続設定ができます。
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 |