djangoラーニング--URL Dispatcher

1047 ワード

きれいなURLは非常に重要で、djangoはこれに対して十分なサポートを提供しています.
djangoはURLConfモジュールマッチング要求のURLを使用してどのfunctionに対応するか、URLConfは通常のpython moudleである.
URLConfモジュールの例(urls.py):
 
from django.conf.urls.defaults import *

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'),
)
 
djangoが受信したリクエストurlに対するルーティングフロー:
 
  • はどのURLConfモジュールを使用するかを決定し、デフォルトで使用されるURLConfはurls.pyモジュールであり、settings.pyで定義されるROOT_URLCONFにて.
  • djangoはURLConfモジュールをロードし、リスト型オブジェクトであるurlpatternsという名前のオブジェクトを検索します.
  • urlpatternsを遍歴して順次マッチングし、第1のマッチングのレコード
  • を返す
  • から返されるレコードにはURLマッチングpython view functionが含まれており、djangoはこのfunctionを呼び出し、HttpRequestオブジェクトおよびその他のパラメータを関数呼び出しのパラメータとして入力する