Проблема с добавлением URL в Django
Я создал новый проект и добавил приложение 'hello'.Затем в файле views добавил функцию index.
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello, world!')
В том же приложении создал файл urls.py и добавил туда эту функцию следую инструкциям из лекции.
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name='index')
]
Затем добавил этот url в основной файл urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', include('hello.urls'))
]
После запуска выдает ошибку 404: The empty path didn’t match any of these.
Ответы (1 шт):
У вас не указано перенаправление на основную страничку!
Django видит это так: пользователь перешел по ссылке http://127.0.0.1:8000/ я (django) смотрю urls.py основной файл и вижу что не зада основная страница поэтому выдаю 404.
Задано только http://127.0.0.1:8000/hello/ или http://127.0.0.1:8000/admin/
Когда вы создали urls.py (в hello), то маршрут начинается c http://127.0.0.1:8000/hello/(здесь ваше пустое значение) для того чтобы вывести это как основную страницу вам надо в основном urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('hello.urls')) #поставить здесь пустое значение
]
Тогда django поймет, то что вы его перенаправляете в другой urls.py (hello) где и стоит ваше пустой значение.
Если говорить проше, то маршрут выглядит так
path('hello/', include('hello.urls')) --> path("", views.index, name='index')
http://127.0.0.1:8000/hello/ + пустое значение
Итог http://127.0.0.1:8000/hello/
path('', include('hello.urls')) --> path("", views.index, name='index')
Если вы сделаете так, то маршрут будет выглядит так
http://127.0.0.1:8000/ + пустое значение + пустое значение