Django でちょっとしたアプリを作成する手順の覚え書き (1)

ちょっとした ユーティリティ Webアプリをつくるのに、Django 便利。

DBカラムの論理名、物理名変換とか、SQLを生成したりとかするようなツールを Webアプリでつくっておくとチーム間で共有できるしExcelマクロより使い勝手が良い場合もしばしば。しかも簡単につくれて、Pythonのパワフルさを十全に利用できる。

ただ、そんなに頻繁につくるものではないので、手順を忘れがち。簡単に動かすところまでをメモしておく。

 

ダウンロード

Django Download から、Django-1.3.tar.gz あたりをダウンロード。

ダウンロードしたファイルを解凍。

するのだが、tar.gz  で圧縮されているので、Windows 7 のエクスプローラーから解凍できない。

こういうとき、Cygwin を入れておくと便利。上記ファイルをダウンロードしたディレクトリに、Cygwinのコンソールから行って、解凍を行う。Windows のドライブは、cygdrive にマッピングされる。

$ cd /cygdrive/C/Users/piroto/Downloads
$ tar -xvf Django-1.3.tar.gz

上記の場合、解凍されると、

C:\Users\piroto\Downloads\Django-1.3

というディレクトリが作成される。

インストール

以下のコマンドを実行

C:\Users\piroto\Downloads\Django-1.3>python setup.py install

インストールの確認

以下のコマンドでエラーがでなければOK

C:\Users\piroto\Downloads\Django-1.3>python
Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>

プロジェクトの作成

Eclipse にPyDev をインストール

Help – Install New Software から、ダウンロードサイトURL に以下を追加してインストール

http://pydev.org/updates/

PyDevプロジェクトの作成

Eclipse から File – New – Other から PyDev グループを選択し、PyDev Django Projecto を作成。

以下のファイルが作成される

ファイル 概要
__init__.py このディレクトリがパッケージだとPythonに伝える空のファイル
manage.py プロジェクトと対話するためのコマンドラインユーティリティ
settings.py プロジェクトの設定ファイル
urls.py プロジェクトのURL宣言

 

Djangoの実行

とりあえず、プロジェクトのコンテキストメニューから、Run As -  PyDev : Django で、Django サーバーを起動し、ブラウザからアクセス。

「It workd!」 と出るはず。

django01

アプリケーションの作成

プロジェクトのコンテキストメニューから、Django -  Create application(manage.py startapp) を選択し、名称を設定(以下の例では、model_name_util)し、アプリケーションを作成する。

django02

URLの設計

以下の書式に従って、URLのリストを、urls.py に記述する。正規表現に一致するリストの、Python コールバック関数を呼び出す。

(正規表現, Python コールバック関数 [, オプションのディクショナリ])

/model_name_util/ のリクエストを、webapp_util.model_name_util.views モジュールの index 関数が処理するように urls.py に設定

urls.py

urlpatterns = patterns('',
    (r'^model_name_util/$', 'webapp_util.model_name_util.views.index'),
)

index関数の実装

呼び出されるコールバック関数を views.py に実装。

HTMLをテンプレートとして呼び出し、コンテキストに値を詰めてテンプレートのレンダリングを行う

from django.template import Context, loader
from django.http import HttpResponse

def index(request):
    t = loader.get_template('model_name_util/index.html')
    c = Context({
                 'message':'Hello Django World.'
                 })
    return HttpResponse(t.render(c))

テンプレートの作成

テンプレートを、settings.py の TEMPLATE_DIR に指定したディレクリに作成する。先頭はスラッシュで始まる必要があり(Windowsでも)、ディレクトリは絶対パス。(ちと面倒くさい)

settings.py

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    "/Users/piroto/workspace_test/webapp_util/src/template"
)

index.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    Django Template. <br/>
    {{message}}<br/>
    settings.py の TEMPLATE_DIRS に絶対パスを指定する必要があるので注意!
</body>
</html>

全体の構成

この時点で全体の構成は、こんな感じ

django03

一旦実行

django04

ちゃんと動いているようだ。

Model は次回。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です