静态路由
urlpatterns = [ # 静态路由 .html 为伪静态 url(r'^index.html$', views.index), ]
动态路由
# 动态路由 使用正则匹配路由 多个正则时按顺序匹配url(r'^article/(\w+)/(\d+).html$', views.article), # 和views中按名字匹配url(r'^article/(?P<type>\w+)/(?P<id>\d+).html$', views.article),# 动态路由 views def article(request, type, id): pass
路由分发
# urls.py 文件# ---------------------------# 引入includefrom django.conf.urls import url, includeurlpatterns = [ # url只要匹配app01成功后,后面的到app01/urls.py中匹配 url(r'^app01/', include('app01.urls')), url(r'^app02/', include('app02.urls')), ]# app01/urls.py 文件# ---------------------------urlpatterns = [ # app01/index.html url(r'^index.html$', views.index), ]
URL别名
# urls.py# ---------------------------urlpatterns = [ url(r'^index1/', views.index, name='n1'), url(r'^index2/(\d+)', views.index, name='n2'), url(r'^index3/(?P<a1>\d+)', views.index, name='n3'), url(r'^login/', views.index, name='loginurl'),]# views.py# ---------------------------# 根据别名 反生成urlfrom django.urls import reversev1 = reverse('n1') # /index/v2 = reverse('n2', args=(1,)) # /index/1v3 = reverse('n3', kwargs={'a1': 22}) # /index/22# login.html 模板中使用别名# ---------------------------{% url "loginurl" %} # => /login/{% url 'index2' i %} # => i=1时 /index2/1