Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Djangoチュートリアル(後編)

Python対応のWebアプリケーションフレームワーク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 DjangoはPythonの簡潔さをうまく活かし、シンプルかつ本格的な開発ができるWebアプリケーションフレームワークです。後編となる今回は、管理インターフェイスの使い方、ショートカット、汎用ビュー、Formクラス、セッション、キャッシュの使用方法などについて説明します。

目次

はじめに

 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クラスを管理インターフェイスで操作する方法を順番に説明します。

管理インターフェイスの有効化

 管理インターフェイスはデフォルトでは無効化されているので、有効化する必要があります。管理インターフェイスの有効化の手順は以下とおりです。

  1. 管理インターフェイス用のアプリケーションをプロジェクトに追加(settings.pyのINSTALLED_APPS変数に追加)
  2. 管理インターフェイス用テーブルをDBに同期
  3. 管理インターフェイス用のURL定義をURLディスパッチャ(urls.py)に追加
  4. ブラウザでアクセス

settings.pyの編集

 管理インターフェイスのアプリケーションを有効化するには、管理インターフェイスのアプリケーションパッケージである「django.contrib.admin」をプロジェクトフォルダのsettings.pyのINSTALLED_APPS変数に追加します。

[リスト1]settings.pyの編集(管理インターフェイスのアプリケーション追加)
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'ecsite.itempage',
    'django.contrib.admin',
)

DBと管理インターフェイス用モデルの同期

 次に管理インターフェイスのモデルとDBを同期させます。プロジェクトフォルダで、以下のコマンドを実行します。

[リスト2]管理インターフェイスのモデルを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には該当のソースが既にコメントで記載されているので、コメントを外します。

[リスト3]urls.pyの編集
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    ~省略
    (r'^admin/', include(admin.site.urls)),
)

 ブラウザで「http://localhost:8000/admin」にアクセスして動作を確認します。

図1 管理インターフェイスのログイン画面
図1 管理インターフェイスのログイン画面

 ログイン画面が表示されたら、プロジェクト作成時にプロンプトから入力した、管理者用のID/パスワードを入力して(前編では、ID:admin、パスワード:adminを入力)ログインしてみましょう。

 ログインに成功すると図2の画面が表示されます。

図2 管理インターフェイスのログイン後画面
図2 管理インターフェイスのログイン後画面

管理インターフェイスにItemモデルを追加する

 管理インターフェイスのログイン後画面では、まだitempageアプリケーションのモデルを操作するため機能は表示されていません。次にItemモデルを操作できるように設定してみましょう。

 管理インターフェイスに、アプリケーション独自のデータを操作するための機能を追加するには、アプリケーションフォルダにadmin.pyというファイルを作成します。admin.pyに次のような記述をします。

[リスト4]admin.pyの編集(管理インターフェイスへItemモデルを追加)
# -*- coding: utf-8 -*-
from django.contrib import admin
from ecsite.itempage.models import Item

admin.site.register(Item)

 管理インターフェイスログイン後の画面でブラウザをリロードしてみましょう(開発サーバの再起動は必要ありません)。図3のようにItemのモデルを編集するためのリンクが表示されました。

図3 管理インターフェイスのログイン後画面
図3 管理インターフェイスのログイン後画面

 以上の操作だけで、Itemの一覧表示、新規登録、編集、削除などが実行できるようになります。Itemの一覧画面の「itemを追加」ボタンを押下すると、図4のItem新規登録画面が表示されます。

図4 管理インターフェイスのItem新規登録画面
図4 管理インターフェイスのItem新規登録画面

 一覧画面の一覧上のリンクをクリックすると、Itemの編集画面が表示されます。編集画面には、該当Itemの削除ボタンもあり、削除することができます。これでItemのデータがひととおり操作できることがお分かりいただけることと思います。

図5 管理インターフェイスのItem編集画面
図5 管理インターフェイスのItem編集画面

  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2009/09/16 17:58 [リスト11]views.py if form.is_valid(): 行を追加しました。

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト 佐藤 治夫 (株式会社ビープラウド)(サトウ ハルオ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

バックナンバー

連載:Djangoチュートリアル
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5