Python開発未経験のJava/PHP/RubyエンジニアがDjangoでお問い合わせフォームを作る:DB接続設定編

データベースの接続先をMySQLにする

風のうわさでは特に指定をしないとSQLiteがデータベースとして設定されるようです。

まあそんなの使うのはほんとサンドボックスだけでしょ。長期的に開発していくにはどうしてもMySQLやPostgreSQLが必要になってきます。

そういうことで、MAMPのMySQLに接続先を変更してみます。

MAMPなのでポート番号もちょっと違っています。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'momomail',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'localhost',
        'PORT': '8889',
    }
}

mysql-pythonのインストール

PythonでMySQLを使えるようにするにはモジュールのインストールが必要なようです。

$ sudo pip install mysql-python

またソケットまわりでエラーが出ました。

django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")

HOSTをソケットのパスに変更するといいようです。

DATABASES = {

        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',

    }
}

phpMyAdminあたりでデータベースを作成した上で、マイグレーションをしてサーバーを起動し直します。

python manage.py migrate
python manage.py runserver

参考(Ruby On Rails版)

https://hacknote.jp/archives/12770/

成果物

https://github.com/YoshiteruIwasaki/momomail/commit/0bc23397b26c457395f6fd21253e68d6a9693d1d