はじめに
Pythonで開発されたWebアプリケーションフレームワークであるDjango(ジャンゴと読む)はPythonの簡潔さをうまく生かし、シンプルかつ本格的な開発ができるWebアプリケーションフレームワークです。本稿の前編では、DjangoやPythonの特徴、Djangoの概要の紹介とインストール手順、そして、チュートリアルとして、商品(Item)のコマンドラインシェルからのデータ操作、そして、ビュー関数によるHTMLへの表示までを説明しました。後編となる今回は、管理インターフェイスの使い方、ショートカット、汎用ビュー、Form
クラス、セッション、キャッシュの使用方法などについて説明します。
対象読者
- PythonによるWebアプリケーション開発に興味がある方
- 日ごろ、Perl、Ruby、PHP、Java、C#などPython以外のプログラミング言語で開発している方
- Webアプリケーションの開発をこれから学ぶ方、もしくは学びはじめたばかりの方。
必要な環境
- Windows XP
- Python2.6.2
- Django1.1
- SQLite 3
管理インターフェイス
管理インターフェイスは、モデル定義をもとにそのモデルのCRUD(Create、Read、Update、Delete)用の管理画面を提供する機能です。Webサービスでは一般に、そのサービスで提供される表向きの機能とは別に、データを管理するためのバックエンド(バックオフィス)用の定型的な画面が必要となりますが、管理インターフェイスはこのバックエンド用画面を簡単に提供することを目的としています。ここでは、前編で作成したItem
クラスを管理インターフェイスで操作する方法を順番に説明します。
管理インターフェイスの有効化
管理インターフェイスはデフォルトでは無効化されているので、有効化する必要があります。管理インターフェイスの有効化の手順は以下とおりです。
- 管理インターフェイス用のアプリケーションをプロジェクトに追加(settings.pyのINSTALLED_APPS変数に追加)
- 管理インターフェイス用テーブルをDBに同期
- 管理インターフェイス用のURL定義をURLディスパッチャ(urls.py)に追加
- ブラウザでアクセス
settings.pyの編集
管理インターフェイスのアプリケーションを有効化するには、管理インターフェイスのアプリケーションパッケージである「django.contrib.admin」をプロジェクトフォルダのsettings.pyのINSTALLED_APPS変数に追加します。
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'ecsite.itempage', 'django.contrib.admin', )
DBと管理インターフェイス用モデルの同期
次に管理インターフェイスのモデルとDBを同期させます。プロジェクトフォルダで、以下のコマンドを実行します。
C:\codezine\ecsite> manage.py syncdb
▼
Creating table django_admin_log Installing index for admin.LogEntry model
urls.py の編集
次に「http://hostname:8000/admin」のURLで管理インターフェイス用のビュー関数が実行されるようにするため、プロジェクトフォルダのurls.pyにリスト3の記述を追加します。urls.pyには該当のソースが既にコメントで記載されているので、コメントを外します。
from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', ~省略 (r'^admin/', include(admin.site.urls)), )
ブラウザで「http://localhost:8000/admin」にアクセスして動作を確認します。
ログイン画面が表示されたら、プロジェクト作成時にプロンプトから入力した、管理者用のID/パスワードを入力して(前編では、ID:admin、パスワード:adminを入力)ログインしてみましょう。
ログインに成功すると図2の画面が表示されます。
管理インターフェイスにItemモデルを追加する
管理インターフェイスのログイン後画面では、まだitempageアプリケーションのモデルを操作するため機能は表示されていません。次にItemモデルを操作できるように設定してみましょう。
管理インターフェイスに、アプリケーション独自のデータを操作するための機能を追加するには、アプリケーションフォルダにadmin.pyというファイルを作成します。admin.pyに次のような記述をします。
# -*- coding: utf-8 -*- from django.contrib import admin from ecsite.itempage.models import Item admin.site.register(Item)
管理インターフェイスログイン後の画面でブラウザをリロードしてみましょう(開発サーバの再起動は必要ありません)。図3のようにItemのモデルを編集するためのリンクが表示されました。
以上の操作だけで、Itemの一覧表示、新規登録、編集、削除などが実行できるようになります。Itemの一覧画面の「itemを追加」ボタンを押下すると、図4のItem新規登録画面が表示されます。
一覧画面の一覧上のリンクをクリックすると、Itemの編集画面が表示されます。編集画面には、該当Itemの削除ボタンもあり、削除することができます。これでItemのデータがひととおり操作できることがお分かりいただけることと思います。