How Django process a request
- Django決定使用root URLconf模塊。即項目名.urls
- Django 加載1中Python模塊,尋找urlpattens變量.urlpatterns變量是
django.conf.urls.url()
的實例列表。 - django 順序遍歷每一個urlpattern, 直到找到一個(第一個)與請求的URL匹配的urlpattern
- 一旦找到匹配的正則,django就去imports and calls給定的view(一個Python 函數或者class based view),並傳入如下參數: 1) 一個HttpRequest實例,2) 如果匹配的正則表達式沒有返回named groups 就將它作爲位置參數。3)由正則表達式中named groups組成的kwarg,被任何在
django.conf.urls.url()
中指定的kwarg 參數重寫。 - 如果沒有正則相匹配,或者在這中間的任何時刻出現異常,django都會去調用合適的錯誤處理視圖.