Django只匹配带有app前缀/标识符的url

时间:2015-03-18 05:45:57

标签: django url

我对django的网址系统有疑问。我正在使用Django 3.我的项目中有以下内容' urls.py'

urlpatterns = patterns('',
    url(r'^$', include('siteadmin.urls')),
)

这是在' urls.py'项目中的django应用程序名为' siteadmin':

urlpatterns = patterns('',
    url(r'^$', views.home, name='home'),
    url(r'^register/$', views.register, name='register'),
    url(r'^login/$', views.user_login, name='login'),

    #...trimmed
)

使用此设置,会发生以下情况:

  1. http://localhost/ =>完美的工作,使家庭'图
  2. http://localhost/register/ =>休息。 (给出404和django的标准"当前的URL,注册,没有匹配任何这些。")
  3. 然而,当我改变项目的时候,你会发现这个问题。'包括以下内容:

    urlpatterns = patterns('',
        url(r'^app/', include('siteadmin.urls')),
    )
    

    并且在1和2中包含/ app /,两个网址都完美无缺。也就是说:

    1. localhost / app / =>完美地运作
    2. localhost / app / register =>效果很好。
    3. 我错过了什么?为什么#2会在第一种情况下中断,而不是第二种情况呢?

1 个答案:

答案 0 :(得分:1)

从项目urls.py中的正则表达式中删除美元符号:

urlpatterns = patterns('',
    url(r'^', include('siteadmin.urls')),
)