Django应用程序URL无法正常工作

时间:2010-11-07 07:57:28

标签: django

在一个应用程序的urls.py中我有:

urlpatterns = patterns('app.views',
    url(r'^products/$', products, name="products"),
    url(r'^$', index, name="index"),
)

在基础项目urls.py中我有:

urlpatterns = patterns('',   
    (r'^$', include('app.urls')),
    (r'^admin/', include(admin.site.urls)),
)

为什么http://127.0.0.1:8000/ - 适用于app.views.index方法 而http://127.0.0.1:8000/products/ - 返回404错误并且未在网址路由中定义?

已经花了一些时间在上面找不到解决方案,也许有一些我想念的简单......

4 个答案:

答案 0 :(得分:12)

您的基本网址应为:

urlpatterns = patterns('',   
    (r'^', include('app.urls')),
    (r'^admin/', include(admin.site.urls)),
)

答案 1 :(得分:5)

'$'仅用于网址。如果你看一下doc,它会告诉你在使用include()时不要使用'$'。

答案 2 :(得分:4)

urlpatterns = patterns('',   
    (r'^', include('app.urls')),
    (r'^admin/', include(admin.site.urls)),
)

工作正常。

答案 3 :(得分:0)

在Django URL中使用path()时,我遇到了同样的问题。 简单的解决方法是,您不必在路径的末尾使用斜杠,否则Django将把该URL作为完整的URL,并且不会转到下一个urls.py文件

//this will not work    
path('/', include('app.urls'), name='profile_page')

// but this will work
path('', include('app.urls'), name='profile_page')