страница не найдена при создании нового URL / просмотр Django

#python #django #django-views #django-templates #django-urls

#python #django #django-просмотры #django-шаблоны #django-urls

Вопрос:

Здравствуйте, я пытаюсь добавить базовый URL-адрес с именем localhost: 8000 / shop

так что, когда я нахожусь на своей домашней странице, я могу щелкнуть ссылку с именем shop, и она приведет меня к localhost: 8000 / shop

в моих URL-адресах.py я добавил

 from django.conf import settings
from django.conf.urls.static import static

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




urlpatterns = [
    path('' , views.home),
    path('admin/', admin.site.urls),
    path('reviews/' , include('reviews.urls')),
    path('shop/' , include('product.urls')),

] 
 

в моей папке под названием product у меня есть urls.py файл с

 from django.urls import include, path
from . import views

urlpatterns = [
    path('shop/' , views.shop),   
        
]
 

и в моей папке продукта у меня есть views.py файл с

 from django.shortcuts import render


# Create your views here.

def shop(request):
    return render(request, 'product/shop.html')
 

связывание его с моим HTML-файлом внутри моей папки продукта..
когда я запускаю сервер, я получаю это сообщение об ошибке

 Page not found (404)
Request Method: GET
Request URL:    http://localhost:8000/shop
Using the URLconf defined in yorleico.urls, Django tried these URL patterns, in this order:

admin/
reviews/
shop/
The current path, shop, didn't match any of these.
 

Что я делаю не так ?!

Ответ №1:

Чтобы зарегистрировать путь /shop , вам необходимо использовать path('' , views.shop), в urls.py в приложении вашего магазина. /shop Префикс уже определяется path('shop/' , include('product.urls')), строкой на уровне вашего проекта urls.py .

Ответ №2:

Все шаблоны URL в product приложении уже начинаются с shop/ , из-за path('shop/', include('product.urls')) . Поэтому ваше urls.py products приложение должно выглядеть так:

 # product/urls.py

from django.urls import include, path
from . import views

urlpatterns = [
    path('' , views.shop),   
] 

в противном случае путь должен быть /shop/shop/ .

Комментарии:

1. БОЖЕ, ТЫ ЛУЧШИЙ!