在Django的URLconf中使用多个视图前缀的方法
在实践中,如果你使用字符串技术,特别是当你的URLconf中没有一个公共前缀时,你最终可能混合视图。然而,你仍然可以利用视图前缀的简便方式来减少重复。只要增加多个patterns()对象,象这样:
旧的:
fromdjango.conf.urls.defaultsimport* 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'), )
新的:
fromdjango.conf.urls.defaultsimport* 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()返回的对象是可相加的,这个特性可能是大家没有想到的。