Gunicorn(Python3.4和3.3)只发送没有数据的头文件

时间:2014-04-09 21:11:03

标签: python python-3.x wsgi gunicorn

我在云中有vm,python 3.3(也尝试过3.4 - 相同的结果)和Gunicorn 18。 我复制/粘贴'hello world'应用程序(app.py):

def app(environ, start_response):
    data = "Hello, World!\n"
    start_response("200 OK", [
        ("Content-Type", "text/plain"),
        ("Content-Length", str(len(data)))
    ])
    return iter([data])

然后运行

gunicorn -w 4 -b 0.0.0.0:8000 app:app

工作人员开始没有错误,但是当我尝试用浏览器打开它时,我只得到没有正文的标题:

Connection: "close"
Content-Length: "14"
...and so on

如果我添加一些自定义标题,我会得到它作为响应,但没有响应正文。 请帮忙

2 个答案:

答案 0 :(得分:12)

添加格雷厄姆的解释,替换

return iter([data])

return [bytes(data, 'utf-8')]

在Python 3下为我工作。当我拥有它时解决了同样的问题。

答案 1 :(得分:6)

您的代码不是Python 3的有效WSGI应用程序。它必须返回一个可迭代的字节字符串,而不是本机(python 3中的unicode)字符串。使用iter()也是多余的,直接返回列表。