3

我有一个简单的 django 设置,其中有一个名为“列表”的应用程序。我现在想http://127.0.0.1:8000/lists展示这个应用程序。所以我将我的主要 urls.py 更改为以下内容:

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

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

我将位于列表文件夹(我的应用程序称为列表)中的 urls.py 更改为以下内容:

from django.conf.urls import patterns, url
from lists import views

urlpatterns = patterns(
    url(r'^$', views.index, name='index')
)

据我所知,我完全按照 django 教程http://127.0.0.1:8000/lists中的说明进行操作,但是当我访问(没有斜杠)时,它给了我以下错误:

Page not found (404) Request Method:    GET Request URL:    http://127.0.0.1:8000/lists

Using the URLconf defined in companyLists.urls, Django tried these URL patterns, in this order:

    ^lists/
    ^admin/

The current URL, lists, didn't match any of these.

当我访问http://127.0.0.1:8000/lists/带有斜杠)时,它给了我以下错误:

Page not found (404) Request Method:    GET Request URL:    http://127.0.0.1:8000/lists/

Using the URLconf defined in companyLists.urls, Django tried these URL patterns, in this order:

    ^admin/

The current URL, lists/, didn't match any of these.

我不明白为什么当我访问带有斜杠的网址时它不再搜索 ^lists/ 。有人知道我在这里做错了什么吗?

欢迎所有提示!

4

1 回答 1

11

您在patternsin lists开头缺少空字符串urls.py

试试这个:

urlpatterns = patterns('',
    url(r'^$', views.index, name='index')
)

空白字符串是一个视图前缀,您可以使用它来协助 DRY 主体。它用于为您的视图路径添加前缀。

例如,(扩展上面的示例):

而不是:

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^homepage$', views.homepage, name='index'),
    url(r'^lists$', views.lists, name='index'),
    url(r'^detail$', views.detail, name='index'),
)

您可以使用:

urlpatterns = patterns('views',
    url(r'^$', index, name='index'),
    url(r'^homepage$', homepage, name='index'),
    url(r'^lists$', lists, name='index'),
    url(r'^detail$', detail, name='index'),
)

要拥有多个视图前缀,只需分段您的urlpatterns.

urlpatterns = patterns('views',
    url(r'^$', index, name='index'),
    url(r'^homepage$', homepage, name='index'),
    url(r'^lists$', lists, name='index'),
    url(r'^detail$', detail, name='index'),
)

urlpatterns += patterns('more_views',
    url(r'^extra_page$', extra_page, name='index'),
    url(r'^more_stuff$', something_else, name='index'),
)
于 2013-05-14T16:06:09.737 回答