Маршрутизация не работает в Django: страница не найдена (GET)
Я пробовал несколько методов написания представлений, но не думаю, что здесь проблема. Приложение установлено в settings.py Оно каждый раз выдает ошибку.
структура проекта: структура
views.py (папка app)
from django.http import HttpResponse
from django.shortcuts import render
def home_view(request):
return HttpResponse('Hello World')
url.py в папке apps
from django.urls import path
from . import views
urlpatterns = [
path('home_view/', views.home_view)
]
apps.py в папке app
from django.apps import AppConfig
class AppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app'
urls.py в папке store
from django.contrib import admin
from django.urls import path, include
from app import views
urlpatterns = [
path('app/home_view/', include('app.url')),
path('admin/', admin.site.urls),
]
сообщение об ошибке: error
В вашем файле urls.py
Change
path('app/home_view/', include('app.url')),
To
path('', include('app.url')),
Тогда
В вашем браузере перейдите по адресу: 127.0.0.1:8000/home_view/
Главное, чтобы это было app.urls, а не app.url. измените ваш файл на url.py до urls.py, это рекомендуется.
Если вы определили path('app/home_view/', include('app.urls')) в urls.py вашей папке store, то он перейдет в вашу urls.py, находящуюся в app.
В своем app's urls.py вы написали path('home_view',views.home_view).
Это означает, что если вы введете 127.0.0.1:8000/app/home_view/home_view/, то он отобразит ваш HttpResponse, то есть Hello world.
Как эксперт по веб-разработке django я увидел несколько небольших исправлений, которые необходимо сделать:
В файле store urls.py его app/ и app.urls
from django.contrib import admin
from django.urls import path, include
from app import views
urlpatterns = [
path('app/', include('app.urls')),
path('admin/', admin.site.urls),
]
Затем измените имя файла app url.py на стандартное имя urls.py.
также не забудьте добавить вашу переменную app в переменную installed_apps в файле settings.py:
INSTALLED_APPS=[
'app',
'django.contin.auth',
#and other already specified apps
]
Остальные файлы не имеют ошибок!!!
В соответствии с этим правильный путь для HttpResponse следующий:
http://localhost:8000/app/home_view/
ИЛИ