我注意到在Django中,文件urlpatterns
中有两种格式的urls.py
:
urlpatterns = [
url(...),
url(...),
]
和
urlpatterns = pattern('',
url(...),
url(...),
)
第一个是
url
实例列表,第二个是使用空字符串和多个pattern
实例作为参数调用url
模块。最佳答案
在Django 1.8+中,urlpatterns应该只是url()
的列表。这种新语法实际上也可以在1.7中使用。
urlpatterns = [
url(...),
url(...),
]
在Django 1.8中使用
pattern
is deprecated的旧语法在Django 1.10中已删除。urlpatterns = pattern('',
url(...),
url(...),
)
使用旧语法,您可以提供前缀。 in the docs给出的示例是
urlpatterns = patterns('news.views',
url(r'^articles/([0-9]{4})/$', 'year_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', 'month_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', 'article_detail'),
)
但是,现在也不建议在 View 中使用字符串参数,而应提供callable。