在實踐中,如果你使用字符串技術,特別是當你的 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()返回的對象是可相加的,這個特性可能是大家沒有想到的。