Djangoにかじりつく。
前準備
駆け足にPythonの基礎的なことを書いたので、今日は Djangoに。
インストールとかは書くのが面倒なので、セットアップはここを参照してください。良く書かれていると思います。
Djangoのアプリケーションを作るときには、まずはプロジェクトを作ります。
python django-admin.py startproject sample-project
これでカレントディレクトリに "sample-project" というディレクトリが作られるはずです。
設定について
設定はプロジェクトディレクトリ直下にできる settings.pyに定義します。
データベースやHTMLテンプレートファイルの場所、プロジェクト内で動作するアプリケーションの設定などができます。
アプリケーションを作る
次にプロジェクトのディレクトリに入って、アプリケーションを作ります。
python manage.py startapp app1
これを実行すると "app1" というディレクトリが作られ、その中には以下のファイルが作られます。
- models.py
- (urls.py)
- views.py
Djangoでは、主にこの三つのファイルを編集して、アプリケーション開発を進めます。
このファイルたちのそれぞれの役割について解説していきます。
models.py
データベースのテーブルと1対1で結びつくモデルクラスを定義します。このファイル名は、基本的に決め打ちなので他のファイルに書いてもDjango側ではモデルであるということを認識しません。どうしても他のファイルにモデルを定義したいときには、Pythonのimportをうまく使って定義するとよさそうです。
urls.py
ブラウザがアクセスしてくるURLとViewの関数を結びつけます。要はURLのルーティングを管理しています。これもファイル名が決まっています。これをカッコつきで書いたのは、プロジェクトディレクトリにあるurls.py(こちらが大元になるルートのファイル)から参照するような形になるためです。
これは追々説明をしていきます。
views.py
Viewを定義するファイルです。JavaプログラマがViewと聞くと、JSPやVelocityを思い浮かべがちですが、Djangoの世界でのViewはコントローラに当たります。つまりServlet。関数の引数も当然、HttpRequestを受け取るような形で引数を定義します。
アプリケーションを追加する
アプリケーションは作っただけでは、プロジェクト側では認識してくれません。
どうすればよいかと言うと、settings.pyのINSTALLED_APPSに追記が必要です。
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'app1', )
これを書かないと、せっかくモデルを書いても manage.py のサブコマンドがアプリケーションを認識できないため、モデルを扱えなかったりします。設定を忘れないようにしてください。
明日はちょろっと動くプログラムを解説する予定です。
そして、明日書いたら、三日坊主はクリアです。