Header
2018-05-26
2019-08-16

DjangoでMySQLを利用する|初心者・独学者向け入門コンテンツ

Setting

プログラミング言語のPythonのフレームワークであるDjangoは 様々なWebアプリケーション作成に利用されています。

Djangoの通常DBはSQLLiteが設定されていますが、 Django2系とPython3系でMysqlを利用しようとしたらハマったので、初心者・独学者向け入門コンテンツとして手順を公開します。

PyMySQLをインストールする

Python3系では、PyMySQLを利用することが推奨されているので、pipでPyMySQLをインストールします。

pip install PyMySQL

manage.pyを編集する

PyMySQLを利用できるように、manage.pyを編集する

import pymysql # 追加

pymysql.install_as_MySQLdb() # 追加

settings.pyを編集する

DATABASESを下記に変更

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoDb',   # DB名を設定(変更可)
        'USER': 'root',       # DBへ接続するユーザIDを設定(rootはあまりよろしくない)
        'PASSWORD': '',       # DBへ接続するユーザIDのパスワードを設定
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
        'TEST': {
            'NAME': 'sample'
        }
    }
}

データベースを生成

Mysqlコマンドを実行し、'NAME': 'djangoDb'で指定したデータベースを生成

$mysql -uroot -p
  Enter password:

mysql> CREATE DATABASE djangoDb;
Query OK, 1 row affected (0.01 sec)

マイグレーションコマンドを実行

python manage.py migrateでマイグレーションを実行します。

$ python manage.py migrate

  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK

本番環境でMySqlを利用する場合

wsgi.pyへ下記を追加します。

import pymysql #追加


pymysql.install_as_MySQLdb()#追加

以上になります

その他関連記事

Djangoでページを追加する|初心者・独学者向け入門コンテンツ

Python3初心者向け|無料で使えるIDE PyCharmの紹介

Python3で画像をスクレイピングしてローカルに保存する|BeautifulSoupを利用

Python3でDjangoをインストールし、hellowWoldを表示する

MySQL記事一覧

MySQLでテーブル名を変更する

MySQLテーブルから指定カラムを削除する

MySQLでカラム名の変更と上書きする

MySQLでデータを削除する

MySQLでテーブルへカラムを追加するALTER TABLE ~ ADD

MySQLでNULLや空文字を検索する

【初心者・独学者向け】データベースとは何かを解説します

前の記事
次の記事
人気記事
カテゴリーから記事を探す