WSGIとPythonでスマートなWebアプリケーション開発を

第5回 WSGIで利用可能なWebアプリケーションフレームワーク

この記事を読むのに必要な時間:およそ 4 分

空プロジェクトの作成と実行

それでは,DjangoでWebアプリケーションを作成してみます。

まず,適当なディレクトリで,

図6

$ django-admin ${プロジェクト名}

とすると,新しくプロジェクトが作成されます。ここでは,django_sampleというプロジェクト名を使用します。

プロジェクト名は,Pythonにインストールされているモジュール名と被らないようにする必要があります。たとえば,testと入力すると,標準モジュールと同名であるため,弾かれてしまいます。

作成したプロジェクトにあるファイルは,以下のとおりです。

ファイル名 意味
__init__.py ディレクトリをモジュールとして使うために必要
manage.py プロジェクトの管理を行うスクリプト
settings.py プロジェクトの設定スクリプト
urls.py URL割り当て設定を記述するスクリプト

実行すると,指定したプロジェクト名でディレクトリができているので,その中に移動し,

図7

$ ./manage.py runserver

とすると,サーバが立ち上がります。

そしてhttp://localhost:8000/にアクセスすると,次のような画面が現れ,アプリケーションの実行が成功したことが確認できます。

図8 Djangoサーバを起動したところ

図8 Djangoサーバを起動したところ

アプリケーションの作成

先ほど作成したのは,Djangoのプロジェクトです。今度は,プロジェクトの上にアプリケーションを作成します。

プロジェクトのディレクトリで

図9

$ ./manage.py startapp ${アプリケーション名}

と入力すると,アプリケーションが作成されます。ここでは,testappというアプリケーション名を使用します。

アプリケーションディレクトリには,以下のファイルが作成されます。

ファイル名 意味
__init__.py プロジェクトの時と同様
models.py データベースに保存するモデルを定義する
views.py 表示に使う関数などを定義する

プロジェクトの設定

作成したプロジェクトの設定を変更します。プロジェクトの設定は,settings.pyにあります。変更するのは以下の変数です。

変数名 値の説明
DATABASE_ENGINE 使用するデータベースのエンジンです。'sqlite3'を指定します。
DATABASE_NAME データベースを保存するファイル名です。 'dj.db'を指定します。
INSTALLED_APPS このプロジェクトで使用するアプリケーション一覧です。'django_sample.testapp'を追加します。

INSTALLED_APPSに追加するdjango.contrib.adminは,管理画面を表示するためのアプリケーションです。またdjango_sample.testappは,先ほど作成したアプリケーションです。名前を変更した方は,それに合わせて変更してください。

modelの定義

作成したtestappにある,models.pyを編集します。

リスト1 models.py

#-*- 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')

中身は使用しているクラス以外は,前回GAEで定義したmodel.pyと変わらないため,説明は省略します。

著者プロフィール

保坂翔馬(ほさか しょうま)

CGプロダクションでプログラマとしてPloneで作成した社内情報共有ポータルの開発・管理,3Dモデリングソフトのツール・プラグイン開発,システム管理用補助ツール作成など幅広く仕事をしている。主たる業務はPloneポータルの開発。

仲間内ではプログラム言語オタクで通っており,好きな言語はPython, Haskell。

Twitter:@shomah4a