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