2012/05/21

Djang1.4修業中 - 初めてのDjango

最近Djangoを初めて触ってみました。
TwitterでもよくよくDjango Djangoと吠えてます。
しかし、新しいバージョンの日本語のドキュメントはなく、
レビュー記事にしてもバージョンが古い(1.4に関しては現在翻訳がすすめられてます)。
初期状態のファイル構成とか細かいとこ変わってて大変。

そこでせっかくだしオベンキョウがてら記事にしてみようかと。

何でそのファイルが必要なの?
何でこんなディレクトリ構成なの?
何でそのコマンドをここで使うの?
Djangoは最初から覚えることが多めなので、そんな「そもそもの疑問」をレポート。

概要

開発環境情報
プロジェクトの作成とファイル構成の確認

開発環境情報

Mac OS X 10.7.4
Python 2.7.1(Darwin)
Django 1.4(install from pip)

プロジェクトの作成とファイル構成の確認

プロジェクトの作成は以下のコマンドとオプションを指定し、最後にプロジェクト名を指定。
このコマンドの実行が完了すると[project name]と同じ名前のディレクトリが作成される。
なおこのディレクトリ以下には初期構成のプロジェクトファイルも同時に生成される。
$ django-admin.py startproject [project name(destination)]
さてこのdjango-admin.pyですが、この後は(ゼロではないはずですが)使いません。
プロジェクト作成後はmanage.pyというのを使います。

django-adminは、例えば以下のコマンドでオプション一覧は確認できますが、
詳細な理解はどう考えても公式ドキュメント読んだ方が賢明かと。
ちなみに後で出てくるmanage.pyでもほぼ同様の内容が表示されます(こっちの方が重要)。
$ django-admin.py -h | less

続いて、生成されたディレクトリとファイルは以下。

[project name]
├── manage.py
└── [project name]
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

この構成に関する情報はチュートリアルPart1で簡潔に書かれています。
つまるところこんな感じらしいです。

■外側の[project name]
プロジェクトのコンテナ。
チュートリアルいわく、この名前は好きなときに書き換えて問題ないとのこと。

■manage.py
このプロジェクトを管理するためのコマンドラインユーティリティ。
チュートリアルにすら詳しくはdjango-admin.py and manage.pyを読めって書かれてます。
で、読んでみるとmanage.pyはdjang-admin.pyに対するラッパで、
単一プロジェクト内で使うのであればmanage.py使うのが楽ですよ、と。
django-admin.pyでプロジェクトの操作を行うより
manage.pyを使った方がいいからこっち使え、ってことと解釈してます。
最初にdjango-admin.pyは使わなくなるよ、と書いたのはコレが理由。

■内側の[project name]
外側の[project name]ディレクトリと違いこちらは実際のPython Packageです。
なおこの[project name]というディレクトリ名はパッケージを利用する際に使う、とのこと。
作り込んだ後にディレクトリ名変更すると事故ってしまう可能性が高くなりますね。
プロジェクト作成直後はよくよくこのディレクトリ以下のファイルを操作してます。

■[project name]/__init__.py
前の項目でこのファイルが配置されているディレクトリはPython Packageです、と書きました。
pythonでPackageを構成するためにはいくつかの制約があります。
そのうちのひとつがこの「__init.py__」です。
ちなみにプロジェクト生成直後は空のファイル。
このパッケージがインポートされる際に初期化を担当するファイルですが、
初心者が最初からここにゴリゴリと書いていく必要はないように思います。

■[project name]/settings.py
チュートリアルをかじるとわかりますが、最初は結構な頻度で操作するファイルです。
要はプロジェクトの設定を記載したファイルで、DBへの接続設定やテンプレートの配置先、
Django内で扱うアプリケーションとかとか、設定をたくさん書いていきます。
詳細はDjango Settingsを読むといいらしい。

■[project name]/urls.py
ブラウザからアクセスする際のURLディレクティブ設定を記載するところ。
ページ数が増えれば増えるほど手を入れることになりますね(手を抜く方法もあるようですが)。
例に漏れずボリュームのある内容なのでチュートリアルではURL Dispatcherを読むようにと書いてます。

■[project name]/wsgi.py
プロジェクト内でWSGI互換Webサーバを利用するためのエントリーポイント、ってことでいいのかな。
この辺りはまだ触れてないですが、やっぱりHow To Deploy WSGIを読むようにと書かれてます。
ファイルの中を読む限り、開発用サーバでWSGIアプリを動かしたいときに使うみたいですね。

中休み

思いのほか長くなった、のでとりあえずはここまで。
wsgi.pyとかの辺りは現状触ってないのでなんとも、という感じですが。
特に明記はないので__init__.pyの扱いがどうなっているかまではわかってません。
ここは実際に試してみる他ないかと。

あ、そうそう。
何でDjangoの日本語ドキュメントとか整備されないの?
ブームが去ったとはいえそんなに触る人、情報公開する人少なくなったの?
と思って調べてたらね、以下のスライドを見つけてね。

Djangoの話
View more presentations from Isoparametric !

日本でDjangoはとっくに枯れきってたらしい。


まあいいや、次は実際の動作確認と、動作手順を早めにレポートします。
それでは、電波送信終了ー。

0 件のコメント:

コメントを投稿