Я настроил часть 1 учебника по django и получаю следующую ошибку «Страница не найдена (404)» при попытке получить доступ к приложению опросов:
Сообщение об ошибке
Page not found (404)
Request Method: GET
Request URL: http://proto.slc.venturedata.com/polls/
Raised by: polls.views.index
Using the URLconf defined in proto.urls, Django tried these URL patterns, in this order:
1. polls/
2. admin/
The empty path didn't match any of these.
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
Я использую Django 2.2, Python 3.7, Apache 2.4.6, mod-wsgi 4.6.5.
Мне удалось завершить урок, используя встроенный веб-сервер, но у меня начались проблемы, когда я добавил Apache и mod-wsgi в смесь. Вот мой код:
прото / 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'),
]
опросы / urls.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
Единственное, что изменилось в settings.py - это TIMEZONE. Все остальное установлено по умолчанию.
Кажется, что-то не так с URL-адресами и соответствием пути. URL-адрес, который я использовал (proto.slc.venturedata.com/polls/), должен совпадать с путем 'polls /', но в сообщении об ошибке говорится, что этот путь пуст.
В ходе экспериментов я обнаружил, что не получил ошибку, если изменил proto / urls.py, заменив путь 'polls /' пустым путем: ''.
urlpatterns = [
path('', include('polls.urls')),
path('admin/', admin.site.urls),
]
Я что-то упустил?
Включая нестандартную конфигурацию Apache, поскольку проблемы начались после того, как я настроил Django для использования Apache в качестве веб-сервера.
ServerName 10.0.10.249:80
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
WSGIPythonPath /var/local/www/proto/
<VirtualHost *:80>
DocumentRoot "/var/local/www/proto"
ServerName proto.slc.venturedata.com
<Directory "/var/local/www/proto">
Require all granted
</Directory>
WSGIScriptAlias /polls /var/local/www/proto/proto/wsgi.py
</VirtualHost>