【问题标题】:Including a Django app's url.py is resulting in a 404包含 Django 应用程序的 url.py 会导致 404
【发布时间】:2011-02-24 00:57:29
【问题描述】:

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

/mysite/urls.py

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

当我尝试访问在 gallery/urls.py 中设置的 url 时,这会导致 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'),
)

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.

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

【问题讨论】:

    标签: python django url-routing http-status-code-404 django-urls


    【解决方案1】:

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

    urlpatterns = patterns('',
        (r'^gallery/', include('mysite.gallery.urls')),
    )
    

    您不需要在包含的 Urlconf 中使用gallery

    urlpatterns = patterns('',  
        (r'^browse/$', 'mysite.gallery.views.browse'),
        (r'^photo/$', 'mysite.gallery.views.photo'),
    )
    

    阅读django docs了解更多信息

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

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 2018-12-16
      • 1970-01-01
      相关资源
      最近更新 更多