2008年10月21日火曜日

Windows環境にPython&DjangoフレームワークのCGI環境を作成する

えーと。私がやりたかったので。

Django(ジャンゴ)は強力なテンプレート機能を持つWebシステムフレームワークです。

なんだか調べてみたらDjangoには簡単なWebサーバ機能が付いているらしいので、どうやらPythonとDjangoだけ入れれば開発環境が作れそうです。


まずPythonを入れます。インストール済みなら飛ばしてください。

Pythonのインストール

まずPythonユーザ会のサイトへ行って、Pythonをダウンロードします。
http://www.python.jp/

画面左側のダウンロードページから、「Python標準リリース」を選択します。

今回はWindows用インストーラの「python-2.5.2.msi」をダウンロードしました。
最新版が出ていたら、そっちにしてくださいね。

ダウンロードしたmsiをダブルクリックして起動すると、インストーラが起動します。
とりあえず「Yes」連発してインストールしてください。

これでCドライブの直下にPythonがインストールされます。

次に、Djangoをインストールします。

Djangoのインストール

こちらがDjangoのダウンロードページです。
http://www.djangoproject.com/download/

「Get the latest official version」にあるダウンロードリンクからダウンロードします。
私の場合はバージョン1.0でした。

「Django-1.0.tar.gz.gz」というファイルが作成されたので、解凍します。
あ、これtar.gzをもう一回圧縮してるみたいですね。2回解凍が必要かもしれません。

思ったより解凍時間がかかって、「Django-1.0」というフォルダができます。
こいつの中を見ると、「setup.py」というファイルがあります。

コマンドプロンプトで解凍されたフォルダをたどり、
python setup.py
でセットアップを実行します。

んだーーーーーっとログが流れるのでしばらく静観。

完了すると、Pythonのインストールフォルダ内にDjangoがインストールされます。

実行してみる

Ruby on Railsと同じくDjangoも、コマンドでサイトの雛形を自動で生成する仕組みのようです。

ということで。

コマンドプロンプトでプロジェクトを作りたいフォルダに移動して、私の場合、
python C:\Python25\Scripts\django-admin.py startproject mysite
を実行しました。

これはPythonフォルダにインストールされた「django-admin.py」というスクリプトを使って、startproject(プロジェクト生成)コマンドを実行しています。

ちなみにmysiteというのはプロジェクトの名前です。お好きな名前を設定してください。
あ、ただしPythonとかDjangoのクラス名をプロジェクト名に使うと面倒なのでやめてくださいとかどっかに書いてありました。

startprojectコマンドは一瞬で完了します。
プロジェクトフォルダをエクスプローラで開くと、
  • __init__.py
  • manage.py
  • settings.py
  • urls.py

という4つのファイルが生成されています。これで準備は完了です。

サイトを実行してみる

早速実行してみましょう。
プロジェクトフォルダをカレントフォルダにして、
D:\django1\mysite>python manage.py runserver
と入力して実行します。
Validating models...
0 errors found

Django version 1.0-final-SVN-unknown, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
と出れば成功です。running at http://127.0.0.1:8000/と書かれているので、ブラウザを立ち上げてから、アドレスバーに、
http://localhost:8000/

と入力して実行してみてください。
It worked!
Congratulations on your first Django-powered page.
と祝福してもらえたら、成功です。ふー。


これで無事Python+Djangoフレームワークの環境が動作しています。
思ったよりサクッといきますねぇ。

もちろんリファレンスにもある通り、この環境はあくまで開発環境です。
PHPやPerlで言うXAMPPとおんなじ感覚と思ってください。

リファレンスにも、絶対に本番運用には使用しないで下さい!と書いてありました。
セキュリティとか色々面倒なんでしょうね。

とはいえ実際に運用する前に手軽に環境を構築できますし、しかも実際の運用環境と併用できるので、かなり便利です。

次回からは、この環境上でDjangoを利用した簡単なサイトの構築を行なってみます。