8.url路由

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 %}

   

posted @ 2018-05-01 07:20  outback123  阅读(560)  评论(0编辑  收藏  举报