Django勉強会Disc6/7開催しました
2009年01月16日(金) 02:27
Django勉強会 Disc6/7 を開催しました。
中級者向けの内容(Disc7)については、動画がとられていたようなので、近いうちにどこかにあがると思います。
初心者向けは、時間が足りなかったり、必要なライブラリのインストールにとまどってしたり、講師の意図したことを伝えきれ無かった部分がありました( 上村さんのフォローアップ が始まっています)。
後日、Python編、Django編、ともに資料がアップされると思いますので、是非復習をしてみてください。資料を見てわからないことがある場合には、 django-ja で質問を投げればきっと回答が得られます。
以下、少し補足します。
Python/Djangoともに初めて使ってみる人へ
今回の Dics6 は、「Pythonの本当に基本的な部分に関するセッション( 松原さん )」と「Djangoのプロジェクトとアプリケーションについての理解を進めるセッション( 上村さん )」の二つでしたが、松原さんのセッションの復習前か復習後に 公式のチュートリアル を流れに沿ってやってみた方がよいと思います。
「Djangoのプロジェクトとアプリケーションについての補足」
まったくDjangoをさわっていなかったかたのために補足しておきます(公式チュートリアルと上村さんの資料をこなせば理解できることですが)。
DjangoのWebサイト開発には、「サイト単位のプロジェクト」と「機能を持ったアプリケーション」が登場します。
「サイト単位のプロジェクト」は主にサイトの設定を受け持ちます。データベース等のプロジェクト毎にするl設定と、どのアプリケーションを利用するかの設定、国際化を利用するかどうかの設定等様々です。
「機能を持ったアプリケーション」はある領域に特化した機能の実装を受け持ちます。データをデータベースから取り出したり、操作したりといった機能です。アプリケーションによっては、データベースを扱わずブラウザからの入力値を改変するだけのものもあります。
Djangoには標準でユーザ管理やセッション管理といったアプリケーションが付属しており、プロジェクトを開始した時点でいくつかのアプリケーションがプロジェクトに設定されます。
実は、標準で付属しているアプリケーションと独自に開発するアプリケーションの間には何の差異もありません。つまり、ありがちな機能に関してはアプリケーションをプロジェクトで使う設定をするだけで再利用ができるのです。
と、ここで重要になってくるのは「機能は同じでも見た目は変えたい」という欲求にどう対処するのか?ということです。
Djangoは「アプリケーションの直下にあるtemplatesというディレクトリをテンプレートの探索起点にする」というテンプレートローダがあらかじめプロジェクトに設定されています。プロジェクトにはもう一つ、プロジェクトの設定ファイル(settings.py)のTEMPLATE_DIRSというタプルに設定されたディレクトリも探索の起点とするというテンプレートローダも設定されています。djangoはテンプレートを探す時、設定された順にテンプレートローダを使い、最初に発見したテンプレートを利用します。
上村さんがサンプルにしたpinaxは、各アプリケーション毎にはtemplatesディレクトリが無く、pinaxとしての見た目がプロジェクト直下のtemplatesディレクトリに格納されています。pinaxのサンプルプロジェクトcompleteの直下のtemplatesディレクトリには各アプリケーション用のテンプレートが格納されています。ですから、「complateに入っているアプリケーションをbasicにコピーしただけでは、テンプレートが見つからずにエラーとなる」のです。
ちなみに、アプリケーションは必ずしもプロジェクトの下に置く必要はなく、Djangoのプロジェクトを実行しているPythonから見つかる場所にあれば動作します。コードベース1つで、複数のプロジェクトから見た目を変えて利用するといったことも可能です。
OSXへのPIL(Python Image Library)のインストール方法
私はmac portsを使わないので、次の方法でインストールを行っています。
Ethan Tira-Thompsonさんのページ からlibpngとlibjpegのUniversalインストーラをダウンロードしてインストールします。
PILのページ からソースコードをダウンロード、展開して sudo python setup.py install する。
ちなみに、2009年2月17日にDjangoの入門本「DjangoXPython」が技術評論社から出版されるので、購入すると良いと思います。というか、是非買ってください。よろしくお願いします。
