Django Включенный URLconf '_mod_wsgi_...', похоже, не содержит никаких шаблонов
Я новичок в Python и пытаюсь запустить приложение Django hello world на Windows. Верхнее сообщение об ошибке появляется при следующем коде:
import os
import sys
import site
from django.core.wsgi import get_wsgi_application
from django.conf import settings
from django.urls import path
from django.http import HttpResponse
site.addsitedir("C:/Program files/python312/Lib/site-packages")
sys.path.append('C:/Users/felhasznalo/Desktop/django')
sys.path.append('C:/Users/felhasznalo/Desktop/django/todo')
settings.ROOT_URLCONF=__name__
settings.ALLOWED_HOSTS = ['localhost', '127.0.0.1']
settings.SECRET_KEY = '1234'
def hello(request):
return HttpResponse("Hello World!")
urlpatterns = [
path("", hello)
]
application = get_wsgi_application()
Я проверил кучу похожих вопросов, но ни один из ответов, похоже, не исправляет это. Есть идеи, что делать или как это отладить? У меня есть переменная urlpatterns, hello - функция, "" - правильный путь, и все же, похоже, она не находит переменную... :S :S :S Интересно, почему она использует глобальные переменные вместо передачи аргументов. Не похоже, что фреймворк хорошо продуман...
Решением является settings.ROOT_URLCONF = 'urls'
и перемещение urlpatterns
в отдельный urls.py
модуль.
В проекте Django должен быть файл
wsgi.py
, который является точкой входа для WSGI-совместимых веб-серверов для обслуживания вашего проекта.
Настройте Apache с помощью
mod_wsgi
, отредактировав файлы конфигурации Apache (обычноhttpd.conf
или специальный файл конфигурации сайта).
Для
urlpatterns
их следует определить вurls.py
файле внутри вашего Django-приложения, а не непосредственно в конфигурации WSGI.
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()
Apache Cpnfiguration:
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>