暇人じゃない

Django のインストールからプロジェクトの作成まで

最近、Django を触り始めました。 初めて Django を知る前、Dwango の間違いかと思っていたのは恥ずかしい思い出…

環境は以下の通りです。 MacOS X 10.6.4 Python 2.6.5 Django 1.2.3

Django のダウンロード

Django | Download http://www.djangoproject.com/download/

Django-1.2.3.tar.gz を適当な場所にダウンロードし、解凍します。

$ wget http://www.djangoproject.com/download/1.2.3/tarball/
$ tar xzvf Django-1.2.3.tar.gz
$ cd Django-1.2.3
$ sudo python setup.py install

インタプリタを開いて、Django が import できるか確認してみます。

$ python
Python 2.6.5 (r265:79063, Sep  1 2010, 21:41:05) 
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> 

正常に import できました。

django-admin.py

django-admin.py のシンボリックリンクを張ります。

sudo ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/django-admin.py /usr/local/bin/

django-admin.py で色々な事ができるみたい。

参考:django-admin.py と manage.py — Django v1.0 documentation http://djangoproject.jp/doc/ja/1.0/ref/django-admin.html

プロジェクトの作成

基本的に Django のチュートリアルに従っています。

参考:はじめての Django アプリ作成、その 1 — Django v1.0 documentation http://djangoproject.jp/doc/ja/1.0/intro/tutorial01.html

プロジェクトを作成するディレクトリに移動

$ cd hoge/
$ django-admin.py startproject mysite
$ ll
total 0
drwxr-xr-x   3 chocoby  staff   102B 10 20 23:05 .
drwxr-xr-x  13 chocoby  staff   442B 10 20 22:59 ..
drwxr-xr-x   6 chocoby  staff   204B 10 20 23:05 mysite
$ cd mysite/
$ ll
total 24
drwxr-xr-x  6 chocoby  staff   204B 10 20 23:05 .
drwxr-xr-x  3 chocoby  staff   102B 10 20 23:05 ..
-rw-r--r--  1 chocoby  staff     0B 10 20 23:05 __init__.py
-rw-r--r--  1 chocoby  staff   546B 10 20 23:05 manage.py
-rw-r--r--  1 chocoby  staff   3.3K 10 20 23:05 settings.py
-rw-r--r--  1 chocoby  staff   482B 10 20 23:05 urls.py

プロジェクトが作成されました。 ファイル構成は CakePHP に比べるとシンプルですね。

それぞれのファイルについて… init.py: ディレクトリが Python パッケージであることを Python に知らせるための空のファイル、ということ。 manage.py: CakePHP でいうcake みたいなものかな(django-admin.py も?) settings.py: CakePHP でいう config ディレクトリの中身に相当するファイルかな。 参考:Django の設定 — Django v1.0 documentation http://djangoproject.jp/doc/ja/1.0/topics/settings.html urls.py: URL ディスパッチャの設定。CakePHP でいう URL Routing ですね。 参考:URL ディスパッチャ — Django v1.0 documentation http://djangoproject.jp/doc/ja/1.0/topics/http/urls.html

開発用サーバーの起動

プロジェクトのルートで

$ python manage.py runserver

すると開発用サーバーが起動できます。 これだけ!すごく楽ちんですね。

ポート番号を変更したい時は runserver の後にポート番号を指定します。

$ python manage.py runserver 8080

http://127.0.0.1:8000/

にアクセスしてみます。

無事、表示されました! CakePHP の初期ページ比べるとかなりシンプルですね。

データベースの設定

今回は SQLite を使用します。

DATABASES = {
    'default': {
        'ENGINE': 'sqlite3',
        'NAME': '/Users/chocoby/hoge/mysite/sqlite.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}

SQLite を使用する場合、設定する項目は ENGINE と NAME だけ。 NAME はデータベースファイルをフルパスで指定します。

データベースの作成

$ sudo python manage.py syncdb
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site

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): yes
Username (Leave blank to use 'root'): 
E-mail address: 
Password: 
Password (again): 
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Group_permissions model
Installing index for auth.User_user_permissions model
Installing index for auth.User_groups model
Installing index for auth.Message model
No fixtures found.

manage.py syncdb でデータベースとテーブルが作成されます。 途中で、管理者ユーザーを作成するか?と聞かれるので作成しておきます。 Username を指定しなければ root になります。

今回はここまで。 日頃 CakePHP を使用しているので、どうしても CakePHP 比較してしまうのですが、Django(や Python)はとてもシンプルだなぁ、と思います。 ワクワクしてきたぞ!

次はモデルの作成からです。