当前 URL app/ 与其中任何一个都不匹配

Posted

技术标签:

【中文标题】当前 URL app/ 与其中任何一个都不匹配【英文标题】:The current URL, app/, didn't match any of these 【发布时间】:2016-03-17 05:08:19 【问题描述】:

我是 Django 的新手,前一天通过在本地安装 Django 1.10 才开始研究它。

我已按照此链接https://docs.djangoproject.com/en/dev/intro/tutorial01/ 的所有说明进行操作。但是我不断收到此错误:

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

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

    ^admin/

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

我已经创建了投票应用程序以开始使用。

首先,我使用 view.py,代码如下:

polls/views.py

from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello World!")

这是我的 urls.py 代码:

投票/urls.py

from django.conf.urls import patterns, url

from . import views

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

这是根目录下的 urls.py:

mysite/urls.py

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

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

我花了很多时间寻找解决方案,发现这个问题已经被问了很多次,所以也尝试了这些解决方案,但没有一个对我有用。

我无法找出我在这里遗漏了什么,所以请注意这个差距。

【问题讨论】:

必须在settings.py INSTALLED_APPS 中添加投票? @utkbansal 感谢您的快速回复。不,我没有添加它,因为在我遵循的文档中没有找到任何步骤。它告诉我需要添加贡献者。你能告诉我应该有什么价值吗? 它对我不起作用:( 你得到什么错误? 是的,你是对的,我在另一个文件上。让我修改并检查 mysite/mystie/urls.py 【参考方案1】:

我认为您在尝试更改根 url 配置时编辑了错误的文件。

确保您正在编辑 mysite/mysite/urls.py(包含 settings.py 的目录)而不是 mysite/urls.py(包含 manage.py 的目录)中的根 url 配置。

作为一般建议,安装最新版本,当前为 1.9。不要使用正在开发的 1.10。确保您关注tutorial for 1.9,因为不同版本的教程会有所不同。例如,您的 mysite/urls.py 与 1.9 的教程不匹配,因为 urlpatterns 应该是:

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

【讨论】:

感谢您的回复。你是对的,我在错误的文件中。让我试试 1.9。 感谢 Alasdair,当我降级到 1.9 时,相同的代码仍然有效。【参考方案2】:

settings.py 中有一个设置名称 INSTALLED_APPS-

将您的应用(即polls)添加到其中。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    ....
    'polls',
]

【讨论】:

Installed apps 现在是一个列表而不是一个元组 :)【参考方案3】:

它正在工作。转到您的网址栏并输入您的应用名称:

http://127.0.0.1:8000/home

我的应用名称是 home。它会起作用的。

如果您想将您的应用设置为默认页面,请从您的应用中导入视图。

喜欢

from home import views

然后写

url(r'^$', views.index),

里面。

它将视图设置为您的默认页面

http://127.0.0.1:8000/

当您键入此内容时,它将重定向到您的视图。

【讨论】:

【参考方案4】:

更改我的网站/网址

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

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

然后运行你的服务器并访问 127.0.0.1/8000。 这应该会将您带到您网站的索引。

或者你保留你的代码并在你的浏览器上运行 127.0.0.1/8000/polls

【讨论】:

【参考方案5】:

我遇到了与描述相同的问题。运行 Windows 机器。

事实证明,我使用的虚拟环境没有正确配置(或者我可能在安装 Django 之前忘记激活它)并且 CMD.EXE 从错误的路径中获取了解释器和 django-admin。

如果 Django 似乎“忽略”了您的 urls.py - 尝试删除所有内容,重新创建虚拟环境,激活它并在之后重新安装 Django。

【讨论】:

【参考方案6】:

如果@Alasdair 的回答不起作用,并且您似乎在处理正确的文件,请重新启动您的服务器

【讨论】:

【参考方案7】:

Django 2.2 中的路径不支持正则表达式,我用的是path('(?P<id>\d+)/share/', views.mail_send_view),所以报错,现在改成这个path('<int:id>/share/', views.mail_send_view)。现在没有收到任何错误。更多信息请关注 django 的官方文档。

【讨论】:

【参考方案8】:

我在阅读官方文档教程时也遇到了同样的问题。我使用的是 cloud 9。在我能够解决这个问题之前我意识到的是,在创建工作区时我已经选择了 django(即在创建工作区时,django 已经安装)并且通过教程,我再次执行$ django-admin startproject mysite,从而拥有另一层具有多个目录的 django,不可避免地会造成混淆。我的解决方案是删除所有内容并重新开始。

【讨论】:

【参考方案9】:

确保您的主网址设置中有path("admin/", admin.site.urls)

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案10】:

清单:

    确保运行服务器
>>python manage.py runserver

使用 StatReloader 监视文件更改 正在执行系统检查... 系统检查未发现任何问题(0 已静音)。 2020 年 2 月 1 日 - 15:04:46 Django 版本 3.0.2,使用设置“corona.settings” 在http://127.0.0.1:8000/启动开发服务器 使用 CTRL-BREAK 退出服务器。

    运行cmd打开浏览器,http://127.0.0.1:8000/polls 应该添加到网址中。

【讨论】:

以上是关于当前 URL app/ 与其中任何一个都不匹配的主要内容,如果未能解决你的问题,请参考以下文章

Django - 当前的URL,与其中任何一个都不匹配

添加新记录时出错当前路径 blog_app/android/add/ 与其中任何一个都不匹配。 - django

Django - 当前的 URL 与这些中的任何一个都不匹配

当前路径,与其中任何一个都不匹配

当前路径 chat/room/1/ 与其中任何一个都不匹配

找不到页面 (404) 请求方法:GET .......当前路径,博客/博客文章,与其中任何一个都不匹配