Маршрутизация не работает в 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/

ИЛИ

http://127.0.0.1:8000/app/home_view/

Вернуться на верх