当前位置: 动力学知识库 > 问答 > 编程问答 >

python - Including a Django app's url.py is resulting in a 404

问题描述:

I have the following code in the urls.py in mysite project.

/mysite/urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',

(r'^gallery/$', include('mysite.gallery.urls')),

)

This results in a 404 page when I try to access a url set in gallery/urls.py.

/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 error

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.

Also, the site is hosted on a media temple (dv) server and using mod_wsgi

网友答案:

Remove the $ from the regex of main urls.py

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

You don't need gallery in the included Urlconf.

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

Read the django docs for more information

Note that the regular expressions in this example don't have a $ (end-of-string match character) but do include a trailing slash. Whenever Django encounters include(), it chops off whatever part of the URL matched up to that point and sends the remaining string to the included URLconf for further processing.

分享给朋友:
您可能感兴趣的文章:
随机阅读: