在实践中,如果你使用字符串技术,特别是当你的 URLconf 中没有一个公共前缀时,你最终可能混合视图。 然而,你仍然可以利用视图前缀的简便方式来减少重复。 只要增加多个 patterns() 对象,象这样:
旧的:
1
2
3
4
5
6
7
8
|
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r '^hello/$' , 'mysite.views.hello' ),
(r '^time/$' , 'mysite.views.current_datetime' ),
(r '^time/plus/(\d{1,2})/$' , 'mysite.views.hours_ahead' ),
(r '^tag/(\w+)/$' , 'weblog.views.tag' ),
)
|
新的:
1
2
3
4
5
6
7
8
9
10
11
|
from django.conf.urls.defaults import *
urlpatterns = patterns( 'mysite.views' ,
(r '^hello/$' , 'hello' ),
(r '^time/$' , 'current_datetime' ),
(r '^time/plus/(\d{1,2})/$' , 'hours_ahead' ),
)
urlpatterns + = patterns( 'weblog.views' ,
(r '^tag/(\w+)/$' , 'tag' ),
)
|
整个框架关注的是存在一个名为 urlpatterns 的模块级别的变量。如上例,这个变量可以动态生成。 这里我们要特别说明一下,patterns()返回的对象是可相加的,这个特性可能是大家没有想到的。