Python Can';无法让django URL正常工作

Python Can';无法让django URL正常工作,python,django,django-urls,Python,Django,Django Urls,我有一个简单的django设置,其中有一个名为“列表”的应用程序。我现在想要http://127.0.0.1:8000/lists以显示此应用程序。因此,我将我的主URL.py更改为以下内容: from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', url(r'^lists/'

我有一个简单的django设置,其中有一个名为“列表”的应用程序。我现在想要
http://127.0.0.1:8000/lists
以显示此应用程序。因此,我将我的主URL.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)),
)
from django.conf.urls import patterns, url
from lists import views

urlpatterns = patterns(
    url(r'^$', views.index, name='index')
)
我将列表文件夹(我的应用程序称为lists)中的url.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)),
)
from django.conf.urls import patterns, url
from lists import views

urlpatterns = patterns(
    url(r'^$', views.index, name='index')
)
据我所知,我完全按照中的说明进行操作,但是当我访问
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.
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.
当我访问
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.
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.
我不明白为什么当我访问带有尾随斜杠的url时,它不再搜索^lists/。有人知道我做错了什么吗


欢迎所有提示

列表
url.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'),
)

啊,我忽略了。这确实有效!但最重要的是;为什么?为什么一开始就需要一个空字符串?现在更新了我的答案@kramer65-希望能让它更清楚。