Проект Django2.1.7 urls.py не работает должным образом (выдает ошибку 404)

#python #django #http-status-code-404

#python #django #http-status-code-404

Вопрос:

Проблема с основными URL-адресами проекта. мой пример кода ниже

 from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('/', include('homepage.urls')),
]  static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  

настройка приложения

 INSTALLED_APPS = [
    'homepage',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  

url-адреса домашней страницы

 urlpatterns = [
    path('', views.homepage, name='homepage'),
]
  

views.py

 from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def homepage(request):
    return HttpResponse('Hello')
  

Результат:
введите описание изображения здесь

Но если я изменю основные URL-адреса проекта, как показано ниже

 from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('homepage.urls')),
]  static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  

результат:

введите описание изображения здесь

Как я могу увидеть http://localhost:8000/blog в http://localhost:8000 /

Ответ №1:

Код правильный.

На скриншоте, который вы посещаете, http://localhost:8000 — нет / в конце. Django сообщает вам, что путь является / . Итак, правильный URL http://localhost:8000/ .

Если вы хотите, чтобы Django автоматически перенаправлял, используйте APPEND_SLASH в settings.py .

Если вы не хотите перенаправлять и не хотите / с конца, тогда используйте path('', include('homepage.urls')), в основном файле urls.

 urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('homepage.urls')),
]  static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  

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

1. Спасибо, сэр, вы потрясающий.

Ответ №2:

url-адреса домашней страницы:

 urlpatterns = [
   path('admin/', admin.site.urls),
   path('', include('homepage.urls')),
]
  

основные URL-адреса:

 urlpatterns = [
   path('admin/', admin.site.urls),
   path('', include('homepage.urls')),
]
  

Я надеюсь, что это поможет