静态路由

  1. urlpatterns = [
  2. # 静态路由 .html 为伪静态
  3. url(r'^index.html$', views.index),
  4. ]

动态路由

  1. # 动态路由 使用正则匹配路由 多个正则时按顺序匹配
  2. url(r'^article/(\w+)/(\d+).html$', views.article),
  3. # 和views中按名字匹配
  4. url(r'^article/(?P<type>\w+)/(?P<id>\d+).html$', views.article),
  5. # 动态路由 views
  6. def article(request, type, id):
  7. pass

路由分发

  1. # urls.py 文件
  2. # ---------------------------
  3. # 引入include
  4. from django.conf.urls import url, include
  5. urlpatterns = [
  6. # url只要匹配app01成功后,后面的到app01/urls.py中匹配
  7. url(r'^app01/', include('app01.urls')),
  8. url(r'^app02/', include('app02.urls')),
  9. ]
  10. # app01/urls.py 文件
  11. # ---------------------------
  12. urlpatterns = [
  13. # app01/index.html
  14. url(r'^index.html$', views.index),
  15. ]

URL别名

  1. # urls.py
  2. # ---------------------------
  3. urlpatterns = [
  4. url(r'^index1/', views.index, name='n1'),
  5. url(r'^index2/(\d+)', views.index, name='n2'),
  6. url(r'^index3/(?P<a1>\d+)', views.index, name='n3'),
  7. url(r'^login/', views.index, name='loginurl'),
  8. ]
  9. # views.py
  10. # ---------------------------
  11. # 根据别名 反生成url
  12. from django.urls import reverse
  13. v1 = reverse('n1') # /index/
  14. v2 = reverse('n2', args=(1,)) # /index/1
  15. v3 = reverse('n3', kwargs={'a1': 22}) # /index/22
  16. # login.html 模板中使用别名
  17. # ---------------------------
  18. {% url "loginurl" %} # => /login/
  19. {% url 'index2' i %} # => i=1时 /index2/1