【django】チュート1 modelを作成してみる。

まずはアプリケーションを作成します。
アプリケーションを作成するには、 アプリケーション(仮:polls)を作りたい ディレクトリの下に入って、
以下のようなコマンド:

python manage.py startapp アプリケーション名(polls)

を入力。

するとアプリケーション名(polls)のディレクトリが作成され、
中身は以下のようになります

__init__.py
models.py
views.py

views.pyを変更して今回は
投票項目 (poll) と選択肢 (choice) の二つのモデルを作成します。 poll には質問事項 (question) と公開日 (publication date) の情報があります。 choice には選択肢のテキストと投票数 (vote) という二つのフィールドがあります。

以下のように書きます。

from django.db import models

class Poll(models.Model):
  question = models.CharField(max_length=200)
  pub_date = models.DateTimeField('date published')

class Choice(models.Model):
  poll = models.ForeignKey(Poll)
  choice = models.CharField(max_length=200)
  votes = models.IntegerField()

これでpollとChoiceというモデルは 作成 されました。
作成されただけでは使うことができません。

.CharField(max_length=200)
文字のフィールド max_length=は最大文字数

                                                                              • -

.DateTimeField('date published')
日時フィールドです

                                                                              • -

.ForeignKey(Poll)
多対一のリレーションです。必須の固定引数として、リレーションを張るモデルのクラスをとります。
ここではpollにリレーションを張っている。

【django】チュート2 modelを有効にする。

モデルは作成されただけでは使うことができません。
有効化するには、settings.py ファイルを編集して、 INSTALLED_APPS 設定を変更し、
'プロジェクト名.アプリケーション名'( 仮:'mysite.polls') を入れます。

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

syncdb を再度実行して、モデルテーブルをデータベース上に作成しましょう:

python manage.py syncdb

【django】チュート3 URL 構造の設計

公開用のインタフェース、ビュー(view) の作成をするのですが、
そのまえにviewとURLを結びつける必要があります。

プロジェクト名/urls.py(仮:mysite/urls.py) を編集します

基本的には
urlpatterns = patterns('',

)
の中身に

urlpatterns = patterns('',
(r'^URL(例 poll)', 'プロジェクト名.アプリ名.views.関数名(def indexならindex)(例mysite.polls.views.index)'),

)

を書き足します。

さらに例えば "/polls/23"とURLにいれて23というの引数をで渡したい場合

(r'^polls/(?P\d+)/$', 'mysite.polls.views.detail')

とすれば
Django は以下のような引数で detail() を呼び出します:

detail(request=, poll_id='23')

poll_id='23' の部分は、 (?P\d+) からきています。パターンを丸括弧で囲うと、パターンにマッチしたテキストを「キャプチャ」して、ビュー関数の引数として送り込みます。 ?P はマッチしたパターンを識別するための名前をつけています。 \d+ は数字の列 (すなわち番号) にマッチする正規表現です。

【django】チュート4 ビューの作成

ビューを書きましょう。
プロジェクト名.アプリ名.views.py(仮mysite/polls/views.py) というファイルを開いて編集します。

よくあるのは下記のパターン

例:
from django.shortcuts import render_to_response
from mysite.polls.models import Poll

def index(request):
  latest_poll_list = Poll.objects.all()
  return render_to_response('polls/index.html',{'latest_poll_list': latest_poll_list})

                                                                                                                                                                    • -

from django.shortcuts import render_to_response
from プロジェクト名.アプリ名.models import モデル名

def ビュー名(request):
  内容
  return render_to_response('template内htmlのroot',渡したい辞書)