djangoを初めてみる
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