読者です 読者をやめる 読者になる 読者になる

BuzzLog / バズログ

BuzzLog / バズログはニュースとエンターテインメントを伝えるメディアです

Python + Django 入門(3) ~ template と名前空間 ~

Python + Django 入門(2) ~ データベース, モデル周り ~ - ガジェット/ゲーム/プログラミング情報 では model 生成・データベース連携までを理解しました。
ここでは template の適用による view のブラッシュアップと URL の名前空間を勉強します。

View と URL のブラッシュアップ

details, results とかを増やしてページを幾つか追加してみます。
Writing more views · ks6088ts/sandbox@7cb213f · GitHub

database API を使って最新 5 つの Question を取得して表示してみます。

displays the latest 5 poll questions in the system · ks6088ts/sandbox@d8deae8 · GitHub

template システムを利用して、html コードに Python オブジェクトをマッピングしてみます。

Apply Django’s template system to separate the design from Python by … · ks6088ts/sandbox@fe88cb6 · GitHub

shortcut モジュールを利用してテンプレートシステムのコードを簡素にします。

Apply shortcut module to make the code simple · ks6088ts/sandbox@7303dee · GitHub

shortcut モジュールを利用して、404 エラーハンドリングのコードを簡素にします。

A shortcut: get_object_or_404() · ks6088ts/sandbox@0066072 · GitHub

html ファイル中に URL がハードコードされていると、 URL 変更があった際に修正箇所が多くなって面倒なのはいわずもがな。
ここではハードコードした URL を template で置き換えます。

Removing hardcoded URLs in templates · ks6088ts/sandbox@04f3c56 · GitHub

いまのところアプリケーションが一つなので問題に遭遇していないですが、
将来的にアプリが複数出てきたときは URL の衝突が厄介な問題として顕在化します。
それを防ぐため、名前空間で URL を分離します。

Namespacing URL names · ks6088ts/sandbox@6919053 · GitHub