0

我正在尝试在https://blog.heroku.com/archives/2016/3/17/in_deep_with_django_channels_the_future_of_real_time_apps_in_django的帮助下使用 django 和频道,但是此代码似乎与 python 3.4 不兼容

在我的 ws_connect 上:

@channel_session
def ws_connect(message):
    prefix, label = message['path'].strip('/').split('/')
    room = Room.objects.get(label=label)
    Group('chat-' + label).add(message.reply_channel)
    message.channel_session['room'] = room.label

尝试连接到套接字时出现以下错误。

prefix, label = message['path'].strip('/').split('/') TypeError: Type str does not support the buffer API

我才刚刚开始使用 python 3.4 并且不知道为什么会中断

4

1 回答 1

2

它看起来像是message['path']一个字节对象而不是字符串,并且尝试应用于strip()字节对象会产生相当神秘的错误消息。相反,尝试message['path'].decode()将其转换为字符串,然后进行剥离和拆分。

另请参阅Python 3.0 urllib.parse 错误“类型 str 不支持缓冲区 API”

于 2016-03-21T21:46:18.887 回答