SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Djangoチュートリアル

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

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


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

 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編集画面

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Itemモデル一覧のカスタマイズ

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Djangoチュートリアル連載記事一覧
この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4264 2009/09/16 17:58

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング