django学习--URL Dispatcher

干净的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的路由流程:

 

  1. 决定使用哪个URLConf模块,默认使用的URLConf为urls.py模块,定义在settings.py中的ROOT_URLCONF中。
  2. django加载URLConf模块,并且查找名为urlpatterns对象,该对象是一个list型对象。
  3. 对urlpatterns遍历并依次匹配,返回第一条匹配的记录
  4. 返回的记录中包含URL匹配的python view function,django调用此function,并将HttpRequest对象以及其他参数作为函数调用的参数传入 

你可能感兴趣的:(django,python)