#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. БОЖЕ, ТЫ ЛУЧШИЙ!