gpt4 book ai didi

python - 如何从 Django Channels 获取查询参数?

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:45 24 4
gpt4 key购买 nike

我需要从 Django Channels 访问查询参数字典。

网址可能如下所示:ws://127.0.0.1:8000/?hello="world"

如何像这样检索“世界”:query_params["hello"]

最佳答案

在 websocket 连接上,message.content 字典包含 query_string。

import urlparse
def ws_connect(message):
params = urlparse.parse_qs(message.content['query_string'])
hello = params.get('hello', (None,))[0]

入门文档 ( http://channels.readthedocs.io/en/stable/getting-started.html ) 暗示 query_string 作为 message.content 路径的一部分包含在内,但事实并非如此。

下面是聊天应用程序示例的有效 consumer.py,其中房间在查询字符串中传递:

import urlparse
from channels import Group
from channels.sessions import channel_session

@channel_session
def ws_message(message):
room = message.channel_session['room']
Group("chat-{0}".format(room)).send({"text": "[{1}] {0}".format(message.content['text'], room)})

@channel_session
def ws_connect(message):
message.reply_channel.send({"accept": True})
params = urlparse.parse_qs(message.content['query_string'])
room = params.get('room',('Not Supplied',))[0]
message.channel_session['room'] = room
Group("chat-{0}".format(room)).add(message.reply_channel)

@channel_session
def ws_disconnect(message):
room = message.channel_session['room']
Group("chat-{0}".format(room)).discard(message.reply_channel)

关于python - 如何从 Django Channels 获取查询参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44223458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com