Проект Django2.1.7 urls.py не работает должным образом (выдает ошибку 404) - PullRequest
1 голос
/ 30 марта 2019

Проблема с основными 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')

Результат: enter image description here

Но если я изменю 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)

результат:

enter image description here

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

Ответы [ 2 ]

1 голос
/ 30 марта 2019

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

На скриншоте вы посещаете http://localhost:8000 - нет / в конце. Джанго говорит вам, что путь /. Итак, правильный 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 голос
/ 30 марта 2019

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

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

главные URL:

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

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...