DjangoでMySQLを使う

PythonのWebフレームワークDjangoでデータベースにMySQLを使う方法を調べてみたいと思います。

開発環境の準備

  1. Pythonの開発環境は、Python2.7.5でvirtualenvを使って作成します。※py2.7名で開発環境を作成します。
  2. そして、pipコマンドでdjangoをインストールします。
    [nakada@centos~]$ mkvirtualenv --python=/usr/local/bin/python2.7 py2.7
    .......................
    .......................done.
    (py2.7)[nakada@centos~]$ pip install django
    .......................
    Successfully installed django
    Cleaning up...
    (py2.7)[nakada@centos~]$

プロジェクトの作成

  1. Djangoの準備が出来たら、mysite名でプロジェクトを作成します。
    (py2.7)[nakada@centos~]$ django-admin.py startproject mysite
  2. 下記のようにディレクトリとファイルが作成されました。
    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py
  3. 一番外側のmysiteディレクトリは、ただの箱ですので、分かり易い名称に変更します。※python2.7で作成するdjangoアプリというのが分かり易いようにdjango27と名称を変更します。
    (py2.7)[nakada@centos~]$ mv mysite django27
  4. django27ディレクトリに移動して、開発用のサーバーを起動してみます。ブラウザでIt Workedが表示されたらOKです。確認したら、開発サーバーをCtrl+Cで終了しておきます。
    (py2.7)[nakada@centos~]$ cd django27
    (py2.7)[nakada@centos django27]$ python manage.py runserver 0.0.0.0:8000

    python063

  5. それでは、本題のデータベースを設定をする前に、MySQLにデータベースを作成したいと思います。※django27名でデータベースを作成することにします。
    (py2.7)[nakada@centos django27]$ mysql -u root -p
     Enret password:
     mysql> CREATE DATABASE django27;
     Query OK, 1 row affected (0.00 sec)
     mysql> exit
     Bye
     (py2.7)[nakada@centos django27]$
  6. PythonでMySQLを使用するために、MySQLdb(mysql-python)モジュールをインストールします。
    (py2.7)[nakada@centos django27]$ pip install mysql-python

エラー時の対応

  1. 通常は、これでインストールできるはずですが、MySQLのバージョンがyumコマンドでインストールしたものより新しい(remi,epel,rpmforge等でインストールした)時に、エラーが表示される場合があります。
  2. そのときは、下記のようにremi、epel、rpmforgeを使用して、mysql-develを再度インストールします。
    (py2.7)[nakada@centos django27]$ sudo yum --enablerepo=remi,epel,rpmforge -y install mysql-devel
  3. mysql-develの最新版が無事インストールできたら、再度mysql-pythonをpipでインストールします。
    (py2.7)[nakada@centos django27]$ pip install mysql-python
  4. Successfully installed mysql-pythonと表示されたらインストール成功です。

使用データベースの設定

  1. MySQLを使用する準備が完了したら、mysite/settings.pyをVimで開きます。
    (py2.7)[nakada@centos django27]$ vi mysite/settings.py
  2. 12行目以下を下記のように修正します。※NAMEには先ほど作成したdjango27という名前のデータベースを指定します。ユーザー名とパスワードは各自の状況に合わせて指定して下さい。
  3. DATABASE = {
        'default' : {
            'ENGINE' : 'django.db.backends.mysql',
            'NAME' : 'django27',
            'USER' : 'root',
            'PASSWORD' : 'mysqlpassword',
            'HOST' : '',
            'PORT' : '',
        }
    }
  4. 32行目のタイムゾーンをAsia/Tokyoに修正します。
    TIME_ZONE = 'Asia/Tokyo'
  5. 36行目の文字コードをutf-8に修正します。
    LANGUAGE_CODE = 'utf-8'

データベーステーブルの作成

  1. データベーステーブルを作成します。
    (py2.7)[nakada@centos django27]$ python manage.py syncdb
  2. Would you like to create one now?(yes/no):と表示されますので、yesと入力してEnterします。
  3. ユーザー名、Eメールアドレスとパスワードを2回入力します。
  4. 下記のように9つのテーブルが作成されました。
    python064

本日は以上です。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ