DjangoはRDBに対する操作をすべてクラスオブジェクト経由で実現しています。
これをObject-relationalマッピング(O/Rマッピング)と呼んでいます。
SQLにこだわりたい人は、SQLをそのまま叩くことも許されていますが、 開発を効率化するためにこのO/Rマッピングを使用することをお勧めします。
まずは、基本的なクラス(テーブル)を定義してみます。
これをObject-relationalマッピング(O/Rマッピング)と呼んでいます。
SQLにこだわりたい人は、SQLをそのまま叩くことも許されていますが、 開発を効率化するためにこのO/Rマッピングを使用することをお勧めします。
まずは、基本的なクラス(テーブル)を定義してみます。
今回は、メールアドレス・名前を格納する簡単なクラスを定義してみます。 まずはDjangoでDBを使えるようにするためにsettings.pyを設定します。
1 2 3 | DATABASE_ENGINE = 'postgresql' DATABASE_NAME = 'maildb' DATABASE_USER = 'dbusr' |
DjangoではPostgreSQL、MySQL、SQLite、Oracle等の主要なDBに対応していますので
いずれかお好みのRDBをインストールしておき、上記のように「DATABASE_ENGINE」に
設定してください。今回はpostgresqlを定義しています。
次に、このプロジェクトで使用するDB名を「DATABASE_NAME」に定義します。
実態は完全にPostgresqlで管理されるDBとなりますので、DB名の重複には注意してください。
# 既存のDB名一覧を見るためには「psql -l」としてください。
今回は「maildb」と名付けておきましょう。
最後にDATABASE_USERです。
これは、maildbにアクセスするユーザ名です。
当然、createusrで予めPostgresql内にユーザを作成しておく必要があります。
CGIからのアクセスならば、CGIユーザ(Debianならばwww-data)をここに設定しておきます。
setting.pyの設定が終わったら、DBの作成とサブコンポーネントの作成を行います。
1 2 | $ python manage.py startapp maildb $ createdb maildb -O dbusr |
これで、DBにアクセスするための基本設定は完了です。
後はモデルを作成して「python manage.py syncdb」とすることで、 自動的にテーブル群を作成してくれるようになります。
具体的なモデル定義例はまた後日。