我刚刚发现以下代码给出了相同的结果:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
作为这个:
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
)
那么,在第一种编码方式中使用 url() 函数有什么用处呢?
我刚刚发现以下代码给出了相同的结果:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
作为这个:
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
)
那么,在第一种编码方式中使用 url() 函数有什么用处呢?
目前这两个选项本质上是相同的,因为在第二种情况下,为每个元组Django
应用url()
函数。引用django.conf.url.patterns
源代码:
def patterns(prefix, *args):
...
pattern_list = []
for t in args:
if isinstance(t, (list, tuple)): # < HERE
t = url(prefix=prefix, *t)
elif isinstance(t, RegexURLPattern):
t.add_prefix(prefix)
pattern_list.append(t)
return pattern_list
此外,正如@Kevin Christopher Henry 已经在此处指出的那样,urlpatterns
它正在被弃用(请参阅弃用 'prefix' arg to django.conf.urls.patterns票证和此拉取请求)。如果没有urlpatterns
,我们将不得不显式调用url()
url 列表的每个项目。最好养成使用它的习惯。