我刚刚开始使用 wsgi,并尝试启动并运行一个简单的 uwsgi 服务器。我已经设置了一个虚拟环境并激活了它。在 lib 中我有一个文件 hello.py,内容如下:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
我正在跑步:
uwsgi --http :8000 --wsgi-file lib/hello.py --add-header "X-test: hi"
启动服务器。
我的问题是服务器没有对主体进行 sedning。当我 curl 到 localhost:8000 时,我可以看到 X-test 标头,因此我肯定是在命中 uwsgi。此外,如果我将“200 OK”更改为其他内容,我也可以在 curl 中看到它。
我确信我正确地遵循了本教程(它看起来非常简单),有人能发现我做错了什么吗?可能是因为我使用的是 python3?我在虚拟环境中通过 pip 安装了 uwsgi,如果这有关系的话。
答案1
python3 的 WSGI 有所不同,你的输出必须是字节而不是字符串