我刚刚开始使用 wsgi,并试图启动并运行一个简单的 uwsgi 服务器。我已经设置了一个 virtualenv 环境并激活了它。在 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"
启动服务器。
我的问题是服务器没有发送正文。当我卷曲到 localhost:8000 时,我可以看到 X-test 标头,所以我肯定是在使用 uwsgi。此外,如果我将“200 OK”更改为其他内容,我也可以在 curl 中看到它。
我很确定我正确地遵循了教程(它看起来很简单),任何人都可以发现我做错了什么吗?难道是我用的是python3?我通过 pip 在我的 virtualenv 中安装了 uwsgi,如果这很重要的话。
python3 的 WSGI 不同,你的输出必须是字节而不是字符串