当前 URL、app/ 与这些中的任何一个都不匹配

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

我是 Django 的新手,前一天刚开始通过在我的本地安装 Django 1.10 来了解它。

我已遵循此 link 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 代码:

polls/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)),
)

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

我找不到我在这里遗漏的东西,所以请引起我的注意。

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

添加您的应用程序,即 polls

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

我认为您在尝试更改根 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),
]

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

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

它正在工作。转到您的 url 栏并输入您的应用程序名称:

http://127.0.0.1:8000/home

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

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

喜欢

from home import views

然后写

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

里面。

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

http://127.0.0.1:8000/

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

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

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

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

改变mysite/url

    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

清单:

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

Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
February 01, 2020 - 15:04:46
Django version 3.0.2, using settings 'corona.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

  1. 用cmd打开浏览器 运行ning, http://127.0.0.1:8000/polls 应该添加到 url.

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

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