1. 程式人生 > >8.url路由

8.url路由

project 127.0.0.1 reverse 才有 spa 如果 ati bsp man

1、單一路由對應

url(r‘^index/$‘, views.index),

這裏要註意的是,/$ 表示只有只/結尾的才有效,如果把$符號去掉的話,只要是以index/開頭都會匹配到這個url

2、基於正則的路由

url(r‘^index/(\d*)‘, views.index),

url(r‘^manage/(?P<name>\w*)/(?P<id>\d*)‘, views.manage),

3、添加額外的參數

url(r‘^manage/(?P<name>\w*)‘, views.manage,{‘id‘:333}),

4、為路由映射設置名稱

url(r‘^home‘, views.home, name=‘h1‘),

url(r‘^index/(\d*)‘, views.index, name=‘h2‘),

設置名稱之後,可以在不同的地方調用,如:

模板中使用生成URL {% url ‘h2‘ 2012 %}

函數中使用生成URL reverse(‘h2‘, args=(2012,)) 路徑:django.urls.reverse,必須用django提供的reverse方法。

5、根據app對路由規則進行分類

在主url.py中進行設置

url(r‘^org/‘, include(‘organization.urls‘,namespace=‘org‘)),

organization.urls表示文件名,也就是說只要是org這個域裏的url我都到organization.urls這個文件去找。比如 www.127.0.0.1:8000/org/list/ 等

6、命名空間

a. project.urls.py

from django.conf.urls import url,include

urlpatterns = [

url(r‘^a/‘, include(‘app01.urls‘, namespace=‘author-polls‘)),

url(r‘^b/‘, include(‘app01.urls‘, namespace=‘publisher-polls‘)),

]

以上定義帶命名空間的url之後,使用name生成URL時候,應該如下:

v = reverse(‘author-polls:detail‘, kwargs={‘pk‘:11})

{% url ‘author-polls:detail‘ pk=12 pp=99 %}

8.url路由