のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

Django(2) アプリケーションを作ろう。

Sponsored Links

皆さんこんばんわ。
お元気ですか?私は元気です。

さて、今回はDjangoのプログラムを弄って Hello Worldでも出しましょうか。
インストールしてない方は前回の記事をご覧ください。

アプリケーションを作る。

manage.pyがあるディレクトリで以下のシェルコマンドを打つ

django-admin.py startapp helloworld

すると、helloworldのディレクトリが増えていると思います。

helloworld
  /__init__.py
  /admin.py
  /models.py
  /tests.py
  /views.py

今回弄るのはviewとproject作成時にできたurls.pyの編集、そしてtemplateを作成します。modelはまだ後にします。ごめんなさい。

urls.py

urls.py はルーティングの編集です。
つまりurlをどうやって処理をするかについて記述するプログラムです。

これを以下のような感じに変更してみましょう。

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^helloworld/index.html','helloworld.views.index')
)

urlの第一引数にurlのルーティング先、第二引数では実行するviewsの関数を指定する。

views.py

views.pyはurls.pyで紐付けされたメソッドを実行し、結果をtemplate-fileに送ります。
最初はほとんど何も書いていないので適当に書きましょ。

from django.shortcuts import render_to_response

# Create your views here.
def index(request):
	return render_to_response('index.html',{
		"temp" : "Hello World"
		})

render_to_responseの第一引数にはtemplateの場所をTEMPLATE_DIRS以下のパスを指定しましょう。TEMPLATE_DIRの指定は次に記載しますね。
第二引数の辞書ですが、キーにテンプレートで使う変数、valueは変数の内容です。

template-file

settings.pyにtemplate-fileを記述するpathを指定しなければいけません。
以下を追加してください。

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)

BASE_DIRは自分が作ったプロジェクトのパスです。
そしてディレクトリを作り、その下にindex.htmlのファイルを作る。

helloworld
  /__init__.py
  /admin.py
  /models.py
  /tests.py
  /views.py
templates
  /index.py

index.htmlの内容は以下の通りに変更する

<html>
<h1>{{ temp }}</h1>
</html>

これらの編集をした後に以下のコマンドを実行して、表示ができれば問題ないはずです。

python manage.py runserver 8080

f:id:tereka:20140218183907p:plain

次回こそ、次回こそ……modelをの前にMVCモデルの説明かなぁ…