【问题标题】:Blank URL pattern in DjangoDjango 中的空白 URL 模式
【发布时间】:2016-11-28 01:03:14
【问题描述】:

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

例如

urlpatterns = patterns(
    '', 
    url(r'^index.html', render_index),
)

#... 

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

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

【问题讨论】:

    标签: python django django-urls


    【解决方案1】:

    patterns() 函数中需要它,因为 patterns() 的第一个参数用作 URL 的公共视图前缀。来自文档:

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

    并且不需要这个视图前缀参数。

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 2017-07-04
      • 2015-03-09
      • 2018-10-31
      • 2013-03-16
      • 2018-07-26
      • 2019-06-02
      • 2020-06-11
      • 2015-08-22
      相关资源
      最近更新 更多