Django : GET / HTTP/1.1" 404 2029
Я начинающий Django. Получаю ошибку 404, не могу найти причину. Следовал всем инструкциям шаг за шагом. Использую Django версии 3.1.1. Пытаюсь найти решение в google, не помогает.
Когда я выполняю python manage.py runserver
- я получаю следующее сообщение
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 16, 2021 - 06:17:59
Django version 3.1.1, using settings 'lecture3.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Not Found: /
[16/Nov/2021 06:18:02] "GET / HTTP/1.1" 404 2029
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 16, 2021 - 06:25:43
Django version 3.1.1, using settings 'lecture3.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Not Found: /
[16/Nov/2021 06:25:46] "GET / HTTP/1.1" 404 2029
Ошибка на странице :
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/
Using the URLconf defined in lecture3.urls, Django tried these URL patterns, in this order:
admin/
hello/
The empty path didn't match any of these.
Hello/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="index")
]
hello/views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def index(request):
return HttpResponse("Hello, world!")
lecture3/lecture3/urls.py
from django.contrib import admin
from django.urls import path, include
from django.urls.conf import include
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', include("hello.urls"))
]
http://127.0.0.1:8000/ -> 404 ошибка но
http://127.0.0.1:8000/admin works fine
http://127.0.0.1:8000/hello works fine
Помогите, пожалуйста, нужна ваша помощь
После того, как пользователь отправит запрос на URL, Django проверит нижеупомянутые соответствия.
- path('admin/', admin.site.urls)
- path('hello/', include("hello.urls"))
Если вы делаете запрос с "http://127.0.0.1:8000/admin" или "http://127.0.0.1:8000/hello", он работает, потому что Django может найти соответствие для запрашиваемого URL.
Поскольку в "lecture3/lecture3/urls.py" нет соответствия для "http://127.0.0.1:8000/", Django выбросит 404.
Я полагаю, что вы получаете ответ "Hello World" для "http://127.0.0.1:8000/hello/", это потому, что как только django встречает "http://127.0.0.1:8000/hello", он включает "hello.urls". В "hello/urls.py" вы прикрепили представление "index" к "", пустому URL. Следовательно, функция представления будет выполнена.