2024-09-29 23:25:58 发布
网友
我不能用python3.5解决这个问题。这段代码对于早于3的Python是可以的。我正在实现Django应用程序所需的wsgiweb服务器。在
文件名为:webserver2.py。但他告诉我
TypeError: a bytes-like object is required, not 'str'
你能帮我吗?在
错误是:
您正在将字符串传递给bytes方法:
bytes
request_line = request_line.rstrip('\r\n')
request_line是bytes对象,不是str对象。您需要传入一个bytes对象来进行剥离;使用b'...'bytesstring文本:
request_line
str
b'...'
接下来,您尝试将请求体加载到StringIO对象中,但是您又有字节。Python 3上的WSGI使用了一个二进制文件对象:
StringIO
env['wsgi.input'] = io.BytesIO(self.request_data)
但是,如果您只想部署Django项目,请立即停止。您需要编写自己的WSGI服务器来实现这一点。您找到的代码是一个样例WSGI服务器,它在实际负载下无法正常工作,并且仅用于说明WSGI是如何工作的。在
对于Django部署,请阅读How to deploy with WSGI documentation。您可能想阅读how WSGI servers work。在
您正在将字符串传递给
bytes
方法:
^{pr2}$request_line
是bytes
对象,不是str
对象。您需要传入一个bytes
对象来进行剥离;使用b'...'
bytesstring文本:接下来,您尝试将请求体加载到
StringIO
对象中,但是您又有字节。Python 3上的WSGI使用了一个二进制文件对象:但是,如果您只想部署Django项目,请立即停止。您需要编写自己的WSGI服务器来实现这一点。您找到的代码是一个样例WSGI服务器,它在实际负载下无法正常工作,并且仅用于说明WSGI是如何工作的。在
对于Django部署,请阅读How to deploy with WSGI documentation。您可能想阅读how WSGI servers work。在
相关问题 更多 >
编程相关推荐