python - 无法让 Django 网址工作

标签 python django django-urls

我有一个简单的 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/

相关文章:

python - url 中省略的参数

python - 当您不知道确切位置时如何在 DF 中分割字符串的一部分?

python - 如何在 Optuna 中建议多变量比率(有界限)?

python - 我有什么办法可以提高效率吗?

python - 在 Django 中合并查询集

python - 简单的 Django 项目结构

python 将字符串每隔 3 个值拆分一次,但拆分为嵌套格式

python - 使用类列表作为 django_tables2 中表类的模型

python - Django Celery 在更改数据库后抛出错误

python - django.core.urlresolver.reverse - NoReverseMatch : Reverse for '...' with arguments '()' and keyword arguments '{}' not found