码迷,mamicode.com
首页 > Web开发 > 详细

8.url路由

时间:2018-05-01 10:52:48      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:rev   att   必须   man   方法   war   view   基于   去掉   

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路由

标签:rev   att   必须   man   方法   war   view   基于   去掉   

原文地址:https://www.cnblogs.com/liuqianli/p/8975562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!