我有一个简单的 Django 设置,其中有一个名为“lists”的应用程序。我现在想要 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')
)
据我所知,我正在按照 the django tutorial 中的说明进行操作非常好,但是当我访问 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.
我不明白为什么当我访问带有结尾斜杠的 url 时它不再搜索 ^lists/。有人知道我在这里做错了什么吗?
欢迎所有提示!
最佳答案
您在列表 urls.py
中的 patterns
开头缺少空字符串。
试试这个:
urlpatterns = patterns('',
url(r'^$', views.index, name='index')
)
空白字符串是一个view prefix您可以使用它来协助 DRY 校长。它用于为您的 View 路径添加前缀。
例如,(扩展上面的示例):
而不是拥有:
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'),
)
拥有multiple view prefixes只需分割您的 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'),
)
关于python - 无法让 Django 网址工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16547846/