почему Django выдает ошибку 404

В настоящее время я пытаюсь завершить учебное приложение для опроса Django 2.0. Я использую Django версии 2.0.7 и Python 3.7.0. Я создал виртуальную среду для этого проекта. Я новичок в Django, поэтому извиняюсь, если моя терминология неверна.

В принципе, я не могу заставить работать часть 1.

Я много раз пытался запустить его, и, похоже, не могу понять, почему он не работает.

Прежде чем я создам приложение для опросов, сайт работает правильно, и я получаю ракетный корабль, однако после того, как я создаю приложение, обновляю polls / views.py, создаю файл polls / urls.py и обновляю mysite / urls.py, я получаю следующая ошибка:

Страница не найдена (404) Метод запроса GET URL-адрес запроса: http://127.0.0.1:8000/

Используя URLconf, определенный в mysite.urls, Django попробовал эти шаблоны URL в следующем порядке:

  1. опросы /
  2. админ /

Пустой путь не соответствует ни одному из них.

Я подумал, что мой код неправильный, поэтому я скопировал и вставил код напрямую с веб-сайта и попытался запустить его. Это все равно не сработает.

Ниже приведен код, который я пытаюсь выполнить, и макет каталога. Любая помощь будет принята с благодарностью. Я уверен, что мне просто не хватает чего-то простого.

Спасибо.

mysite / urls.py

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

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

опросы / urls.py

from django.urls import path

from . import views

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

опросы / views.py

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

Каталог C: \ Users \ ad \ Documents \ projects \ mysite \ msenv \ mysite \ mysite

print.txt

settings.py

urls.py

wsgi.py

init .py

pycache

Каталог C: \ Users \ ad \ Documents \ projects \ mysite \ msenv \ mysite \ polls

admin.py

apps.py

миграции

models.py

tests.py

urls.py

views.py

init .py

pycache


person Aiden    schedule 15.07.2018    source источник
comment
как только вы добавите приложение и перенаправите его, вы должны вызвать его, используя шаблон URL-адреса, который вы использовали в приложении. Итак, попробуйте 127.0.0.1:8000/polls   -  person InAFlash    schedule 15.07.2018
comment
В вашем коде нет ничего плохого. Вы должны прочитать сообщение об ошибке: оно сообщает вам, что вы собираетесь перейти в /, который вы не определили, а не в / polls или / admin, которые у вас есть.   -  person Daniel Roseman    schedule 15.07.2018
comment
Спасибо за вашу помощь, я очень зол на себя за то, что упустил это. Об этом говорится в документации.   -  person Aiden    schedule 16.07.2018


Ответы (1)


добавили ли вы имя своего приложения в settings.py, убедитесь, что вы добавили имя в settings.py, которое находится в папке проекта

в вашем случае это будет здесь:

Каталог C: \ Users \ ad \ Documents \ projects \ mysite \ msenv \ mysite \ mysite

нравится:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app_name',] # <--- polls in your case

убедитесь, что вы используете свои маршруты, которые вы определили, для доступа к правильной странице

например в вашем случае:

маршруты вашего сайта:

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

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

и маршруты опросов вашего приложения:

from django.urls import path

from . import views

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

согласно вашему файлу views.py

что это:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

вы должны посетить http://localhost: {номер порта} / polls / или http://127.0.0.1: {номер порта} / polls /

номер порта по умолчанию - 8000

после запуска сервера с использованием python manage.py runserver

чтобы ваша страница выводилась в браузере

person Syed Khizaruddin    schedule 15.07.2018
comment
Спасибо за помощь, досадовал, что пропустил добавление опросов в конец адреса. - person Aiden; 16.07.2018