0
私はDjangoチャンネルからクエリパラメータdictにアクセスする必要があります。Djangoチャンネルからクエリパラメータを取得するには?
URLは次のようになります。ws://127.0.0.1:8000/?hello="world"
私はこのような '世界' を取得するにはどうすればよい:query_params["hello"]
?
私はDjangoチャンネルからクエリパラメータdictにアクセスする必要があります。Djangoチャンネルからクエリパラメータを取得するには?
URLは次のようになります。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パスの一部として含まれているが、ケースのように表示されません。
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)
:以下
は部屋がクエリ文字列に渡されたチャットアプリケーションのサンプルのための作業consumer.pyです