Django 包含的 URLconf '_mod_wsgi_...' 中似乎没有任何模式

问题描述 投票:0回答:1

我是一名 Python 新手,我正在尝试使用 Apache 和 mod_wsgi 在 Windows 上运行 Django hello world 应用程序。上面的错误消息显示为以下代码:

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()

从服务器开始,使用此代码可以正常工作:

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

所以我认为问题出在 Django 配置上。我不知道如何传递像

urlpatterns
这样的配置参数。显然创建全局变量是行不通的。有什么想法吗?

python django
1个回答
0
投票

在env var中设置模块不起作用,所以我决定直接加载模块并复制属性,这解决了问题。

from django.conf import settings
from django.core.wsgi import get_wsgi_application
import app.settings as app_settings

for key,value in app_settings.__dict__.items():
    setattr(settings, key, value)

application = get_wsgi_application()
© www.soinside.com 2019 - 2024. All rights reserved.