SHOEISHA iD

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

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

Djangoチュートリアル

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

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


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

 DjangoはPythonの簡潔さをうまく活かし、シンプルかつ本格的な開発ができるWebアプリケーションフレームワークです。本稿ではこのDjangoによるアプリケーション開発の基本をチュートリアル形式で説明します。

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

はじめに

 近年、Webアプリケーション開発で用いるプログラミング言語として、Lightweight Language(以降LL)と呼ばれるスクリプト言語が人気を博しています。本稿では、そのスクリプト言語の中からPythonとWebアプリケーションフレームワークのDjango(ジャンゴと読む)を紹介します。

 Pythonの大きな特徴として、「言語仕様が小さくシンプルであり、簡潔で読みやすいアプリケーションを作れる」という点が挙げられます。DjangoはPythonの簡潔さをうまく活かし、シンプルかつ本格的な開発ができるWebアプリケーションフレームワークです。本稿ではこのDjangoによるアプリケーション開発の基本をチュートリアル形式で説明します。

対象読者

  • PythonによるWebアプリケーション開発に興味がある方
  • 日頃、Perl、Ruby、PHP、Java、C#などPython以外のプログラミング言語で開発している方
  • Webアプリケーションの開発をこれから学ぶ方、もしくは学びはじめたばかりの方。

必要な環境

  • Windows XP
  • Python 2.6.2
  • Django 1.1 Beta
  • SQLite3

 執筆時点(2009年6月29日)では、Djangoの正式バージョンは1.0.2ですが、間もなく1.1がリリースされる模様です。本稿では1.1Betaを使用します。


システムのライフサイクル

 プログラミング言語を選択する際の視点として、開発生産性やとっかかりの良さだけに目が行きがちです。もちろんその2つはとても重要な要素ですが、システムはバージョン1.0をリリースしたらそれでおしまいということはほとんどなく、その後も機能追加、修正を実施していくことがほとんどです。むしろ、ライフサイクルでみるとバージョン1.0の開発期間よりも、リリースされてからの時間の方が圧倒的に長いと言えるでしょう。それを示したのが図1です。

図1:システムのライフサイクル
図1:システムのライフサイクル

 バージョン1.0からの時間の方が圧倒的に長く、企業ではジョブローテーションなどで人が入れ替わることを考えると、作られたプログラムが読みやすいかという点、すなわち保守性の高さは言語選択において重要なポイントであると言えます。

各スクリプト言語の思想・哲学

 プログラミング言語は、それぞれに言語思想・哲学を持っています。例えばPerlは、TIMTOWTDI(there's more than one way to do it - あることをするのにいくつものやり方がある)という哲学を持っています。Rubyもその哲学を引き継ぎ、「多様性は善(Diversity is Good)」という哲学を持っています。すなわちPerlとRubyは言語のもともとの思想として、一つのことを実現するのに、プログラマによりさまざまな書き方があることを善とし、奨励するというスタンスであり、当然その言語を使用して開発されたプログラムは、規約などを定めない限り、開発する人によりさまざまに異なってくるということになります。

 一方、Pythonは言語自身の機能をできるだけ小さくおさえ、ユーザーがいつも必要とする最小限の機能のみを提供するという思想で言語が設計されています。これより、Pythonでは同一の仕事をするプログラムは、大体どれも同じようなコードにおさまるという特徴を持ちます。これがPythonで書かれたコードの読みやすさ、保守性の高さに直結します。このようなことから、筆者は、エンタープライズのウェブサービスのプログラミング言語としてPythonに注目しています。

GoogleのPython採用

 世界的なIT企業であるGoogleでは使用するプログラミング言語を3つ定めています。それはC++、Java、Pythonの3つです。Googleのサービス、社内ツールの多くがPythonで実装され、大規模なシステムで活用されています。代表的なサービスとして、YouTubeの大部分がPythonで実装されています。また2008年4月にGoogleがリリースしたクラウドサービスであるGoogle App Engineの言語としてPythonが採用されており、Djangoも同梱されています(Google App Engineに同梱されているバージョンは0.96ですが、Google App Engine上で全ての機能が使用できるわけではありません)。

 Googleのような世界的レベルの企業が、Pythonを積極的に活用しているのも、Pythonがエンタープライズのシステムで用いるのに効果的な言語であることを認められているからではないでしょうか。欧米ではGoogleをはじめとしてPythonの良さが既に認められ、さまざまなシステムやサービスで使用されています。

日本国内でのPython人気

 Python Hack-a-thonの第1回の開催が、8月に予定されています。75名募集のところが、募集開始と同時にあっという間に定員に達し、キャンセル待ちが20人以上発生している状態です。このようなことからも、日本国内でのPython人気が高まってきていることが伺えるのではないでしょうか。

 Hack-a-thon(ハッカソン)とは、ある開発テーマの技術に興味のあるプログラマーたちが、ノートPC持参で集まり、ソフトウェアをハックしたり、プログラムをコーディングしたりして、最後に開発したアプリケーションやサービスをプレゼンするというイベントです。日本でもここ最近で活発に開催されるようになってきています。

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

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

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

メールバックナンバー

次のページ
Djangoの紹介

修正履歴

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

  • このエントリーをはてなブックマークに追加
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/4065 2009/07/16 17:08

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング