DjangoのURL ディスパッチャ追記

Djangoにおけるウエブシステムフレームワークの大きな機能、URL ディスパッチャについて、追記します。

URLconfのルール

urlpatterns = patterns('',
    (r'^articles/2003/$', 'news.views.special_case_2003'),
    (r'^articles/(\d{4})/$', 'news.views.year_archive'),
    (r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
    (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'),
)
  • URLの記述には先頭のスラッシュは付けない。「全ての URL に共通だから」ということだが、馴染めば慣れるかな。
    例) ^/articles ではなく ^articles 。
  • 正規表現文字列のリテラルの前の'r'は必須では無いが、r は文 字列中エスケープしないことを表すので通常付ける。
  • メソッドの呼び出しは、二番目にマッチした例だと、news.views.month_archive(request, ’2005′,’03′)というふうに呼び出す。

URL パターンでの国際化

URL パターンの言語プレフィックスを付けます。また、翻訳したURL パターンを使う機能です。

URLconf の検索対象

URLconf が URL を解釈するとき、リクエストメソッド(POST, GET, HEAD)およびドメイン名は調べません。

エラービューのカスタマイズ

404、503、403エラーのビューが用意されています。

 

ディスパッチャに関して、まだ続きます。

Posted in

コメントを残す

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

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">