Как исправить ошибку «Страница не найдена (404)» («Django попробовал эти шаблоны URL ... Пустой путь не соответствовал ни одному из них.») - PullRequest
1 голос
/ 05 апреля 2019

Будучи новичком в Django, я столкнулся с той же проблемой, что и многие до меня. Я был бы признателен, если бы вы не пометили мой вопрос как двойной, поскольку я проверил исправления, предложенные в этих старых сообщениях, но безрезультатно.

Я следовал этому учебнику и закончил со всеми до заголовка "Projects App: Templates". Теперь, когда я запускаю сервер, на http://localhost:8000/ я получаю:

Страница не найдена (404) Метод запроса: GET URL запроса: http://localhost:8000/

Используя URLconf, определенный в personal_portfolio.urls, Django пробовал эти шаблоны URL в следующем порядке:

admin/
projects/

Пустой путь не соответствовал ни одному из них.

Вы видите эту ошибку, потому что у вас есть DEBUG = True в вашем файле настроек Django. Измените это на False, и Django отобразит стандартную страницу 404.

Это вывод консоли при запуске сервера:

Проверка системы не выявила никаких проблем (0 отключено).

05 апреля 2019 - 15: 31: 54

Django версия 2.2, используя настройки 'personal_portfolio.settings'

Запуск сервера разработки в http://127.0.0.1:8000/

Выйдите из сервера с помощью CTRL-BREAK.

Не найдено: /

[05 / Apr / 2019 15:32:01] «GET / HTTP / 1.1» 404 2042

Не найдено: /favicon.ico

[05 / Apr / 2019 15:32:01] "GET /favicon.ico HTTP / 1.1" 404 2093

То, что я пытался, но не помогло:

  1. перезапуск сервера,
  2. проверка моего кода внутри файлов по исходному коду учебника ,
  3. Убедитесь, что 'projects' находится внутри списка INSTALLED_APPS в settings.py.

Вот urls.py внутри rp-портфолио \ personal_portfolio:

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

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

Вот urls.py внутри rp-портфолио \ projects:

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"),
]

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

В 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/')),
]
0 голосов
/ 05 апреля 2019

попробуйте

в urls.py

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

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

надеюсь, это поможет

...