Djangoチュートリアル(その1)をやった

データベースはMySQLを使いました。MySQLdbというのが必要なのでインストールしておきます。

$ sudo apt-get install python-mysqldb

モデルの作成

モデルを作成するにはクラスを定義すればいいです。
1つのテーブルが1つのクラスになります。クラス定義にはテーブルのフィールド名、フィールドの型、リレーションなんかが含まれます。
これだけでSQL文を自動的に生成してくれます。MySQLの場合、テーブル型は指定できない?ようなのでデフォルトが使用されます。デフォルトは嫌だい!という場合は、my.cnfで設定?わかんないけど。
また、データへアクセスするためのAPIも自動で作成してくれます。いろいろと優秀。

プロジェクトとアプリケーション

マイクロソフトのVCなんかもこの考え方だったけど、これはいいですね。
こういうとこ。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'mysite.polls'
)

API

データアクセスがラク。リレーションのたどり方とか。ちゃんとJOINしてくれてるんでしょうね。すごい。
この書き方が衝撃的だった。

# API は必要に応じて自動的にリレーションを追跡します.リレーションを辿
# るには二重アンダースコアを使います.この表記法には制限がなく,何段階
# でも連鎖できます.以下の例では, pub_date が 2005 の全ての Poll に関
# 連づけられている Choice を返します.
>>> Choice.objects.filter(poll__pub_date__year=2005)

全体的に

たのしい!

メモ

  • そーいえばMySQLのデフォルトはMyISAMだから外部キー使えない
  • TEXTとかBLOBとかの定義のしかた
  • Field の第一固定引数に日本語。u"作成日時"とかでいいのか?
    • -

http://ymasuda.jp/python/django/docs_0.95/tutorial01.html
http://www.djangoproject.com/documentation/tutorial1/