django channels str 不支持缓冲区 API

django channels str doesnt suppoer buffer API

我正在尝试在 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

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

前缀,标签=消息['path'].strip('/').split('/') 类型错误:类型 str 不支持缓冲区 API

我才刚刚开始使用 python 3.4,不知道为什么会出现问题

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

另见 Python 3.0 urllib.parse error "Type str doesn't support the buffer API"