viewの定義
views.
リスト2 views.
#-*- coding:utf-8 -*-
# Create your views here.
from django import shortcuts, http
import models
from xml.sax import saxutils
def listMessages(request):
''' エントリ一覧を出力 '''
items = models.getEntries()
esc = saxutils.escape
for i in items:
i.title = esc(i.title)
i.name = esc(i.name)
i.body = esc(i.body)
response = shortcuts.render_to_response('index.html',
{'title':'Message Board',
'items':items,
'posturl':'post/',
'esc':saxutils.escape})
return response
def addMessage(request):
''' エントリを追加 '''
post = request.POST
title = post.get('title', '')
name = post.get('name', '')
body = post.get('body', '')
models.addEntry(name, title, body)
return http.HttpResponseRedirect('..')
listMessagesとaddMessageを定義しています。addMessageは,
listMessagesは,
ここで読み込むテンプレートは,
テンプレートファイルは,
リスト3 テンプレートファイル
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
{% for x in items %}
<dl>
<dt>Title</dt>
<dd>{{ x.title }}</dd>
<dt>Name</dt>
<dd>{{ x.name }}</dd>
<dt>Date</dt>
<dd>{{ x.date }}</dd>
<dt>Body</dt>
<dd>{{ x.body }}</dd>
</dl>
<hr />
{% endfor %}
<form method="post" action="{{ posturl }}">
<dl>
<dt>Title</dt>
<dd><input type="text" name="title" /></dd>
<dt>Name</dt>
<dd><input type="text" name="name" /></dd>
<dt>Body</dt>
<dd><textarea name="body"></textarea></dd>
<input type="submit" value="post" />
</form>
</body>
</html>
{%
と %}
で囲まれた部分には, {{
と }}
で囲まれた部分は,
テンプレートを使用すると,
URLディスパッチの設定
最後に,
リスト4 urls.
from django.conf.urls.defaults import *
urlpatterns = patterns(
'',
# Example:
# (r'^django_sample/', include('django_sample.foo.urls')),
# Uncomment this for admin:
# (r'^admin/', include('django.contrib.admin.urls')),
('^post/', 'django_sample.testapp.views.addMessage'),
('^', 'django_sample.testapp.views.listMessages'),
)
ここでは,
まとめ
少々駆け足気味でしたが,
このように,
Django に関するドキュメントは,
今回でWSGIの特集は最後です。この特集が, Web アプリケーション開発者の方々のお役に立てれば幸いです。最後まで読んでいただき,