ちょっとDjango(PythonのWebフレームワーク)を使ってみることになりまして、Macローカルにインストールした手順を記しておきます。

ご注意

Django使い始めたばかりなので、勘違いして理解している点があると思います。それはご了承の上ご覧ください。

 

Django Official Website

http://www.djangoproject.jp

Officialページ以外で最も参考にしたサイト

http://blog.manbolo.com/2013/05/02/build-and-deploy-a-django-project-on-osx-from-scratch

 

インストール諸条件

  • Django v1.6
  • Mac Mavericks (v10.9.4)
  • Python v2.7(Mac OS添付版)
  • Apache v2.2(Mac OS添付版)
  • Database MySQL 5.5

 

Command Line Tool、Homebrewは予め入れておいてください。MySQLもインストール済み、Apacheは使える状態になっているとします。

 

大まかな流れ

  1. Django本体のインストール
    1. pipをインストール
    2. Djangoをインストール
    3. MySQLdbをインストール
    4. Southインストール
  2. 新規プロジェクト作成
    1. 新規プロジェクト(mysite)作成
    2. データベースを作成する
    3. Migration(South)設定
    4. 開発ページを表示
  3. Hello World
  4. ディプロイ設定

 

長くなるので、この記事では#1-2のみを掲載し、続きの#3-4は後ほどUpします。

 

Django本体のインストール

まずはDjango自体をMacローカルにインストールします。事前にCommand Line ToolとHomebrewをインストールしておいてください。

pipをインストール

pipをインストールします。pipとはPythonのモジュールのインストール管理ツールで、perlにおけるcpanみたいなものらしい。

下記のサイトで配布している”get-pip.py”をDLして実行するのみです。手順も下記サイトのInstall pipに書かれています。

https://pip.pypa.io/en/latest/installing.html

 

Djangoをインストール

Djangoをインストールします。いくつか方法があり、公式ページで紹介されています。

https://www.djangoproject.com/download/

 

開発中の最新版を使う場合はgithubからインストールする必要がありますが、ここでは最新の安定版v1.6.5をpipでインストールします。

 

その前に・・・

古いDjangoが入っている場合は、削除しておきます。”site-packages”フォルダ内のdjangoフォルダを削除しておきます。”site-packages”フォルダの場所は、次のコマンドで探せます。>>参考

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

 

インストール自体は下記コマンド1発でOK

pip install Django==1.6.5

 

一度動作確認をしておきます。

Pythonシェルを開きます

python

Djangoのバージョン確認。

>> import django 
>> print(django.get_version())

インストールしたバージョン番号”1.6.5″が表示されればOKです。

 

MySQLdbをインストール

Djangoで第1のお勧めデータベースはPostgreSQLらしいですが、MySQLも対応しているとのこと。今回は使い慣れたMySQLを使うことにします。MySQLdbは、Python-MySQLのやり取りをするためのモジュールです。

pipでインストールします。

pip install mysql-python

 

Southをインストール

Migrationツール”South”をインストールしておきます。Migrationとは、データベースについて記述したスクリプトファイルを(モデル、models.py)を読み込んで、スクリプトで指定されたテーブルをデータベース上に新規作成する機能です。

インストールは、やはりpipを使います。

pip install South

 

 

新規プロジェクト作成

Djangoのプロジェクトを作成します。諸々の設定を行い、開発用サイトのadmin画面にログイン表示するところまで行います。

 

新規プロジェクト(mysite)作成

新しいプロジェクトを1つ作成してみます。今回は、ドキュメントフォルダの直下にDjangoProjectsというフォルダを作成し、その下に数々のプロジェクトを作成します。

cd ~
mkdir DjangoProjects
cd DjangoProjects
mkdir FirstProject
cd FirstProject

プロジェクト格納フォルダ(FirstProject)に移動したら、プロジェクト作成コマンドを実行します。

django-admin.py startproject mysite

実行すると、次のようなツリーが自動作成されます。

/FirstProject
 |-/mysite
    |-manage.py
    |-/mysite
       |-__init__.py
       |-settings.py
       |-urls.py
       |-wsgi.py

以下、プロジェクトフォルダ=/FirstProject/mysiteと称することにします。

 

アプリを作成する

このプロジェクトで開発するアプリ(MyApp)を作成します。プロジェクトフォルダに移動して、下記コマンドを実行します。

python manage.py startapp MyApp

このコマンドを実行すると、自動的にプロジェクトフォルダ直下にテンプレートファイルが入ったMyAppフォルダが作成されます。

 

データベースを作成する

このプロジェクトで使用するデータベースを作成します。MySQLにログインしてデータベースを1つ新規作成します。

mysql> create database mysitedb;

 

このデータベースにDjangoからアクセスするためのユーザー&Passを設定します。

GRANT ALL PRIVILEGES ON mysitedb.* TO 'djangouser'@'localhost' IDENTIFIED BY 'password';

 

プロジェクトの設定

まずはsetting.pyを設定します。

言語設定をUTF-8に指定する。

LANGUAGE_CODE = 'utf-8'

タイムゾーンを日本に指定する。

TIME_ZONE = 'Asia/Tokyo'

データベースの設定を行う。

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'mysitedb',
    'USER': 'djangouser',
    'PASSWORD': 'password',
    'HOST': '',
    'PORT': '',
  }
}

アプリの設定を行います。先に作成したアプリフォルダの名前”MyApp”と、Migration用モジュール”south”を追加します。

INSTALLED_APPS = (
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'south',
  'MyApp',
)

 

Migration設定

プロジェクトフォルダに移動して、下記のコマンドを実行します。

python manage.py schemamigration MyApp --initial

 

続いて下記コマンドを打ってMigrationを実行します。

python manage.py syncdb --migrate

 

途中で下記を聞かれたらyes

You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no):

続いてユーザー名、メールアドレス、パスワードが聞かれるので、入力します。

 

成功すると、データベースmysitedb内に、下記のようなテーブルが作成されます。

+----------------------------+
| Tables_in_mysitedb         |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| south_migrationhistory     |
+----------------------------+

 

なお今後モデルを書き換えるなどした場合は、下記コマンドでMigrationを行います。

python manage.py schemamigration MyApp --auto
python manage.py migrate MyApp

 

 

開発用サイトを動かしてみる

プロジェクトフォルダに移動して、下記コマンドを実行する。

python manage.py runserver

 

ダーっと出て来たメッセージの中に、サーバーにアクセスするアドレスが書いてあるので確認しておきます。

Starting development server at http://127.0.0.1:8000/

 

確認したアドレスにアクセスします。

http://127.0.0.1:8000/

 

home_2x

成功しました♥︎

続いて、アドレスに/admin/を追加してアクセスします。

admin_login_2x 先ほどMigrationを実行したときに入力したユーザ名とパスワードを入力します。

admin_2x

うまく動いたようです^^

 

続きの記事で、Hello worldの実行と、ディプロイ設定について書く予定です。

それでは、お疲れさまでした!