包括Django应用程序的url.py导致404

828*_*828 10 python django url-routing django-urls http-status-code-404

我在mysite项目的urls.py中有以下代码.

/mysite/urls.py

from django.conf.urls.defaults import *
urlpatterns = patterns('',
    (r'^gallery/$', include('mysite.gallery.urls')),
)
Run Code Online (Sandbox Code Playgroud)

当我尝试访问gallery/urls.py中设置的网址时,这会产生404页面.

/mysite/gallery/urls.py

from django.conf.urls.defaults import *
urlpatterns = patterns('',  
    (r'^gallery/browse/$', 'mysite.gallery.views.browse'),
    (r'^gallery/photo/$', 'mysite.gallery.views.photo'),
)
Run Code Online (Sandbox Code Playgroud)

404错误

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^gallery/$
The current URL, gallery/browse/, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)

此外,该网站托管在媒体寺(dv)服务器上并使用mod_wsgi

Ama*_*osh 17

$从主要的正则表达式中删除urls.py

urlpatterns = patterns('',
    (r'^gallery/', include('mysite.gallery.urls')),
)
Run Code Online (Sandbox Code Playgroud)

您不需要gallery在随附的Urlconf中.

urlpatterns = patterns('',  
    (r'^browse/$', 'mysite.gallery.views.browse'),
    (r'^photo/$', 'mysite.gallery.views.photo'),
)
Run Code Online (Sandbox Code Playgroud)

阅读django文档以获取更多信息

请注意,此示例中的正则表达式没有$(字符串结尾匹配字符),但包含尾部斜杠.每当Django遇到时include(),它都会删除与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf以进行进一步处理.