はじめに
前回は、 WSGIアプリケーションを動作させるためのプラットフォームとして、
Webアプリケーションフレームワークとは
アプリケーションフレームワークとは、
ひと口にWebアプリケーションフレームワークと言っても、
Django
Djangoは、
Djangoは、


また、
DjangoとGAEとの連携には、
Djangoのインストール
Djangoのダウンロードページから、
展開したディレクトリで
$ python setup.py install
とセットアップスクリプトを実行するとインストールされます。インストールには管理者権限が必要です。
サンプルデータ
今回のサンプルデータは、
サンプルを展開したディレクトリに移動し、
$ ./manage.py syncdb
これで、
そして、
$ ./manage.py runserver
を実行すると、
その後、
空プロジェクトの作成と実行
それでは、
まず、
$ django-admin ${プロジェクト名}
とすると、
プロジェクト名は、
作成したプロジェクトにあるファイルは、
ファイル名 | 意味 |
---|---|
__ |
ディレクトリをモジュールとして使うために必要 |
manage. |
プロジェクトの管理を行うスクリプト |
settings. |
プロジェクトの設定スクリプト |
urls. |
URL割り当て設定を記述するスクリプト |
実行すると、
$ ./manage.py runserver
とすると、
そしてhttp://

アプリケーションの作成
先ほど作成したのは、
プロジェクトのディレクトリで
$ ./manage.py startapp ${アプリケーション名}
と入力すると、
アプリケーションディレクトリには、
ファイル名 | 意味 |
---|---|
__ |
プロジェクトの時と同様 |
models. |
データベースに保存するモデルを定義する |
views. |
表示に使う関数などを定義する |
プロジェクトの設定
作成したプロジェクトの設定を変更します。プロジェクトの設定は、
変数名 | 値の説明 |
---|---|
DATABASE_ |
使用するデータベースのエンジンです。'sqlite3'を指定します。 |
DATABASE_ |
データベースを保存するファイル名です。 'dj. |
INSTALLED_ |
このプロジェクトで使用するアプリケーション一覧です。'django_ |
INSTALLED_
modelの定義
作成したtestappにある、
#-*- coding:utf-8 -*-
from django.db import models
import datetime
# Create your models here.
class Entry(models.Model):
name = models.CharField(max_length=100)
title = models.CharField(max_length=100)
body = models.TextField()
date = models.DateTimeField('post date')
def addEntry(name, title, body):
item = Entry(name=name,
title=title,
body=body,
date=datetime.datetime.now())
item.save()
def getEntries():
return Entry.objects.order_by('-date')
中身は使用しているクラス以外は、
viewの定義
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は、
ここで読み込むテンプレートは、
テンプレートファイルは、
<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ディスパッチの設定
最後に、
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 アプリケーション開発者の方々のお役に立てれば幸いです。最後まで読んでいただき、