TypeError:需要类似字节的对象,而不是'str'WSGI s

2024-09-29 23:25:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能用python3.5解决这个问题。这段代码对于早于3的Python是可以的。我正在实现Django应用程序所需的wsgiweb服务器。在

文件名为:webserver2.py。但他告诉我

TypeError: a bytes-like object is required, not 'str'

你能帮我吗?在

^{pr2}$

错误是:

enter image description here


Tags: django代码py服务器应用程序bytesobjectis
1条回答
网友
1楼 · 发布于 2024-09-29 23:25:58

您正在将字符串传递给bytes方法:

request_line = request_line.rstrip('\r\n')

request_linebytes对象,不是str对象。您需要传入一个bytes对象来进行剥离;使用b'...'bytesstring文本:

^{pr2}$

接下来,您尝试将请求体加载到StringIO对象中,但是您又有字节。Python 3上的WSGI使用了一个二进制文件对象:

env['wsgi.input']        = io.BytesIO(self.request_data)

但是,如果您只想部署Django项目,请立即停止。您需要编写自己的WSGI服务器来实现这一点。您找到的代码是一个样例WSGI服务器,它在实际负载下无法正常工作,并且仅用于说明WSGI是如何工作的。在

对于Django部署,请阅读How to deploy with WSGI documentation。您可能想阅读how WSGI servers work。在

相关问题 更多 >

    热门问题