【问题标题】:How to fix "Page not found (404)" error ("Django tried these URL patterns... The empty path didn't match any of these.")如何修复“找不到页面(404)”错误(“Django 尝试了这些 URL 模式......空路径与这些都不匹配。”)
【发布时间】:2019-08-27 10:21:42
【问题描述】:

作为 Django 的新手,我遇到了和之前很多人一样的问题。如果您没有立即将我的问题标记为双重问题,我将不胜感激,因为我检查了那些旧帖子建议的修复,但无济于事。

我正在关注this 教程并完成了所有标题“项目应用程序:模板”。现在,当我启动服务器时,http://localhost:8000/ 我得到:

找不到页面 (404) 请求方法:GET 请求网址:http://localhost:8000/

使用personal_portfolio.urls 中定义的URLconf,Django 按以下顺序尝试了这些URL 模式:

admin/
projects/

空路径与其中任何一个都不匹配。

您看到此错误是因为您的 Django 设置文件中有 DEBUG = True。将其更改为 False,Django 将显示标准 404 页面。

这是我运行服务器时的控制台输出:

系统检查未发现任何问题(0 静音)。

2019 年 4 月 5 日 - 15:31:54

Django 2.2 版,使用设置“personal_portfolio.settings”

http://127.0.0.1:8000/启动开发服务器

使用 CTRL-BREAK 退出服务器。

未找到:/

[2019 年 4 月 5 日 15:32:01] "GET / HTTP/1.1" 404 2042

未找到:/favicon.ico

[2019 年 4 月 5 日 15:32:01]“GET /favicon.ico HTTP/1.1”404 2093

我试过了,但没有帮助:

  1. 重启服务器,
  2. 对照教程的source code 检查我在文件中的代码,
  3. 确保'projects' 位于settings.pyINSTALLED_APPS 列表中。

这是 rp-portfolio\personal_portfolio 中的urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('projects/', include('projects.urls'))
]

这是 rp-portfolio\projects 中的urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("", views.project_index, name="project_index"),
    path("<int:pk>/", views.project_detail, name="project_detail"),
]

【问题讨论】:

  • 你对这个错误有什么困惑?您没有“/”的路径,只有“/projects”的路径。

标签: python django request http-status-code-404 urlconf


【解决方案1】:

urls.py

from django.urls import path
from django.views.generic import RedirectView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('projects/', include('projects.urls')),
    path('', RedirectView.as_view(url='/projects/')),
]

【讨论】:

    【解决方案2】:

    试试这个

    在 urls.py 中

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('projects.urls'))
    ]
    

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      当您在项目中寻找路径时,您请求的路径必须是 http://localhost:8000/projects/

      【讨论】:

        【解决方案4】:

        你需要添加:

        in polls/urls.py
        

        添加这个:from django.conf.urls import url

        所以它看起来像:

        from django.urls import path
        from django.conf.urls import url
        from . import views
        
        urlpatterns = [
            path('', views.index, name='index'),
        ]
        

        【讨论】:

          【解决方案5】:

          有时 URL 会从终端获取其他单词。

          示例 1.0

          http://127.0.0.1:8000/Quit 使用 CTRL-BREAK 启动开发服务器。

          例如在示例 1.0 中,而不是打开像 http://127.0.0.1:8000/ 这样的链接

          链接将是 http://127.0.0.1:8000/Quit,因为 /Quit 不包含在您的代码中,您将收到 404 错误。

          示例 2.0

          Starting development server at http://127.0.0.1:8000/
          Quit the server with 
          CTRL-BREAK.
          Not Found: /Quit
          [27/May/2021 22:36:07] "GET /Quit HTTP/1.1" 404 2066
          [27/May/2021 22:36:59] "GET / HTTP/1.1" 200 5873
          [27/May/2021 22:37:04] "GET / HTTP/1.1" 200 5873
          

          希望对您有所帮助。

          【讨论】:

            猜你喜欢
            • 2022-06-19
            • 1970-01-01
            • 1970-01-01
            • 2020-11-24
            • 2020-08-02
            • 2020-10-15
            • 1970-01-01
            • 1970-01-01
            • 2019-12-27
            相关资源
            最近更新 更多