当前 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/ 与其中任何一个都不匹配的主要内容,如果未能解决你的问题,请参考以下文章
添加新记录时出错当前路径 blog_app/android/add/ 与其中任何一个都不匹配。 - django