Django 中的空白 URL 模式
Blank URL pattern in Django
我继承了一个 Django 应用程序并注意到 urlpatterns += patterns('')
和整个 urls.py
中的等效项。
例如
urlpatterns = patterns(
'',
url(r'^index.html', render_index),
)
#...
urlpatterns += patterns(
'',
url(r'^page.html', another_controller),
)
这是在做什么?任何事物?
patterns()
函数中需要它,因为 patterns() 的第一个参数用作您的网址的通用视图前缀。来自文档:
urlpatterns = patterns('',
(r'^articles/(\d{4})/$', 'news.views.year_archive'),
(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'),
)
更简单地写为:
urlpatterns = patterns('news.views',
(r'^articles/(\d{4})/$', 'year_archive'),
(r'^articles/(\d{4})/(\d{2})/$', 'month_archive'),
(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'),
)
但是,从 Django 1.8 开始,urls.py
中的 urlpatterns
变量是用一个简单的列表创建的:
urlpatterns = [
url(r'^index.html', render_index),
url(r'^page.html', another_controller),
]
并且不需要此视图前缀参数。
我继承了一个 Django 应用程序并注意到 urlpatterns += patterns('')
和整个 urls.py
中的等效项。
例如
urlpatterns = patterns(
'',
url(r'^index.html', render_index),
)
#...
urlpatterns += patterns(
'',
url(r'^page.html', another_controller),
)
这是在做什么?任何事物?
patterns()
函数中需要它,因为 patterns() 的第一个参数用作您的网址的通用视图前缀。来自文档:
urlpatterns = patterns('',
(r'^articles/(\d{4})/$', 'news.views.year_archive'),
(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'),
)
更简单地写为:
urlpatterns = patterns('news.views',
(r'^articles/(\d{4})/$', 'year_archive'),
(r'^articles/(\d{4})/(\d{2})/$', 'month_archive'),
(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'),
)
但是,从 Django 1.8 开始,urls.py
中的 urlpatterns
变量是用一个简单的列表创建的:
urlpatterns = [
url(r'^index.html', render_index),
url(r'^page.html', another_controller),
]
并且不需要此视图前缀参数。