djangoを初めてみる

2009.7.26

Python で何かサービスを作ってみたいなと思っていたのですが、Django、TurboGears、Pylons など、いろいろなフレームワークがあって、どれを使うか悩んでいました。

しかし、テクニカルスキルも、英語スキルも高くないので、情報が多い Django を使って見ることにしました。

また、google app engine との親和性も高いようですので、低コストでサービスを公開できそうな感じがグッドです!

Django install

使用している環境によってインストール方法が異なるかと思います。

僕の場合は、Debian5.0.2 を使用していますので、以下のように apt を使って、パッケージをインストールしました。

DB を使うところもあると思いますので、python-sqlite も入れておきます。

DB は sqlite の他に、MySQL や Postgres なんかも使えるようですが、今回は、設定などの手間を省くため、sqlite にしました。

% sudo apt-get install python-Django python-sqlite

make project directory

Django のプロジェクトを設置するディレクトリの作成を行います。

/var/www/に作ると、セキュリティー上あまり調子がよくないので、/home/johan/下に作成することにしました。ディレクトリ名は自由です。

% cd
% mkdir djcode
% cd djcode

execute Django-admin

Django-admin コマンドを使って、Django のプロジェクトを作成します。

コマンドの書式は、djadmin startproject [プロジェクト名]という形式になっています。僕の場合は、以下のように mysite という名前にしました。

% Django-admin startproject mysite

このコマンドを使うと、mysite というディレクトリを作成し、その下にデフォルトのプログラムや、設定ファイルが生成されます。

run server

作成されたプロジェクトを実行してみます。

先ほど、Django-admin コマンドで作成された mysite というディレクトリの中に manage.py というスクリプトが作成されていますので、引数に runserver というパラメータで実行します。

% cd mysite
% python manage.py runserver

manage.py を実行すると、以下のようなメッセージが表示され、開発用のサーバが起動します。

Validating models
0 errors found.
Django version 1.0, using settings ‘mysite.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

しかし、この状態ではローカルからしか接続できない状態ですので、vmware を使っている場合には別の方法を取る必要があります。

以下のように、0.0.0.0:8000 というパラメータを加えることで、どこからでも接続できるようになります。表示されるメッセージのアドレス部分が変化したかと思います。

% python manage.py runserver 0.0.0.0:8000
Validating models…
0 errors found
Django version 1.0.2 final, using settings ‘mysite.settings’
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

view mysite

それでは、ブラウザから実際に接続してみます。

http://[IP アドレス]:8000/に接続してみると、青っぽい感じのページが表示されるかと思います。Django の開発用サーバを起動しているコンソールには、以下のようなログが表示されます。

% python manage.py runserver 0.0.0.0:8000
Validating models…
0 errors found
Django version 1.0.2 final, using settings ‘mysite.settings’
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[17/Jul/2009 01:55:15] “GET / HTTP/1.1” 200 2053

関連記事