这篇博客的所有知识都是从Django的URLconf所得,这篇博客只是一个重点列举。
URLconf
URL配置本质是一个网站的导航流(navigate flow),将网站各页面的url和对应的控制器连接起来,从而通过控制器实现model和view的调度,将整个网站的各个模块联结起来。首先从一段代码开始:
from django.conf.urls import url
from . import views
urlpatterns[
url(r'^articles/2003/$',views.special_case_2003),
url(r'^articles/([0-9]){4}/$',views.year_archive),
]
当请求的url匹配urlpatterns中的某一个pattern时,便会call对应的控制函数,从而调用对应的视图层和模型,将整个网站各部分结合起来。
URL传参
Django的独特之处在于可以结合正则表达式让URL自身就是参数,如下代码:
urlpatterns = [
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
]
其中(?Ppattern)表示对pattern所匹配的字符串赋值给名为name的变量,这样,对于控制函数year_archive就可以使用name变量。
扩展:下面对?在正则表达式的常用用法
1. 表示非贪婪匹配:
贪婪匹配&#x