Skip to main content
 首页 » 编程设计

python之Django 中的空白 URL 模式

2024年10月17日36dyllove98

我继承了一个 Django 应用程序并注意到 urlpatterns += patterns('') 和整个 urls.py 中的等效项。

例如

urlpatterns = patterns( 
    '',  
    url(r'^index.html', render_index), 
) 
 
#...  
 
urlpatterns += patterns( 
    '',  
    url(r'^page.html', another_controller), 
) 

这是在做什么?任何事物?

请您参考如下方法:

它在 patterns() 函数中是必需的,因为 patterns() 的第一个参数用作 url 的公共(public) View 前缀。来自文档:

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), 
] 

并且不需要此 View 前缀参数。