勢いで作ったDjangoでwiki20を自分のメモついでに、解説をしてみます。

Pythonは2.4.3がインストールされているWindowsな方向けに解説します。

正規表現は…知っておられる方向けですorz

まずはDjnagoのインストールです。

できる限り開発版使って欲しいという開発者達のご意見ですが、
wiki20を作ったときはDjango 0.95でやっていたのでそちらで説明します。

今は開発バージョンを使っています。

とりあえず0.95をこちらから落としてきましょう
http://www.djangoproject.com/download/0.95/tarball/

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

svn coがわかる方はそちらの方がいいかと。
で、解凍してpython setup.py installでOKです。

DBはご自由に、お勧めはSQLiteです。

さて、まずはプロジェクトファイルを作成しましょう。

# django-admin.py startproject wiki20

でプロジェクトフォルダができます。

# cd wiki20

とりあえず起動するか確認しましょう。

# python manage.py runserver 8080

これでhttp://localhost:8080/にアクセスすればなんか画面が表示されて
It's work!とかでればいいはずです。(英語違うかも)

DjangoはTurboGearsと違って最初にやることが少しあります。

setting.pyを編集します。

まずはDataBase関連を設定しましょう。
この辺はまぁ…読めばわかります。

というかDB使ったことある人ならわかると思います。

ワレワレハニホンジンダということをアピールするために

TIME_ZONE = 'Asia/Tokyo Japan'
LANGUAGE_CODE = 'ja'

と設定しましょう。
とりあえずはここまで設定すればOKです。

manage.pyを作るときにいるフォルダはwiki20です。

# python manage.py syncdb

ユーザーつくるかいな?と聞かれるので作ってしまいましょう。
メールアドレスは適当でいいです。

さてやっとこさ自分用の開発環境が立ち上がりました。

さっそくアプリケーションを作っていきましょう。

TurboGearsで一つのプロジェクトで一つのアプリですが、
Djangoでは一つのプロジェクトでは複数のアプリが可能です。

とりあえず今回はwiki20のアプリだけなので気にしなくていいですが。

ではアプリを作りましょう。

# python manage.py startapp root

これでwiki20/rootにモデルとビューができました。
DjangoはTurboGearsと違ってコードを自動生成してくれません。

個人的にはそっちのほうがいいですが:-p

ではモデルを書きます。
DjangoのモデルはSQLObjectをインスパイアしてますので、
かなーり似ていますので結構そのままです。

from django.db import models

class Page(models.Model):
    pagename = models.CharField(primary_key=True, maxlength=30)
    data = models.TextField()

ちなみにTurboGearsだと

class Page(SQLObject):
    pagename = UnicodeCol(alternateID=True, length=30)
    data = UnicodeCol()

です、かなり似ているので取っつきやすいと思います。

SQLObjectで日本語を扱う場合はUnicodeColを使用しますが、
DjangoではCharFieldで問題ありません。

dataのTextFieldですが、
Djangoでマルチラインの文字列を扱う場合は
CharFieldではなく、TextFieldを使います。

主キーを指定したフィールドに設定したい場合は、
primary_key=Trueを使います。

今回はこんなところです。

次はビューの作成です。