Django(2) アプリケーションを作ろう。
皆さんこんばんわ。
お元気ですか?私は元気です。
さて、今回は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
次回こそ、次回こそ……modelをの前にMVCモデルの説明かなぁ…