代码之家  ›  专栏  ›  技术社区  ›  828

包括一个django应用的url.py会导致404

  •  10
  • 828  · 技术社区  · 15 年前

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

    /MyStur/urL.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.
    

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

    1 回复  |  直到 13 年前
        1
  •  17
  •   Amarghosh    15 年前

    移除 $ 从主正则表达式 urls.py

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

    你不需要 gallery 在包含的URLCONF中。

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

    阅读 django docs 了解更多信息

    注意,本例中的正则表达式没有 $ (字符串结尾匹配字符),但必须包含尾随斜杠。每当Django遇到 include() ,它会切掉与该点匹配的URL的任何部分,并且 发送剩余的字符串 到包含的URLCONF进行进一步处理。