最近、Web ソケットを Django に統合する方法を調査しています。ドキュメントによると、Channelsを使用するのが最善の方法です。
例示的なモデルクエリが与えられた場合
class Request(models.Model):
id = models.IntegerField(name="id", primary_key=True)
query = models.CharField(name = 'query', max_length=1024)
Web アプリケーションを Web ソケット サーバーに接続したいと考えています。Web ソケット サーバーは、メッセージを受信すると、クライアントによって確立されたソケット接続の特定のサブセットにそのメッセージをブロードキャストする必要があります。
クライアント (つまり、Web ブラウザー) は、ブロードキャストされたメッセージを受信すると、それをRequest.objectsに追加する必要があります。それ以降、すべてのクエリのリストは、Django テンプレートとその中で定義されたモデルを使用して自動的に更新される必要があります。ユーザーが明示的に更新する必要はありません。
したがって、私の質問は次のとおりです。(I) Channels を使用する場合 (これが Django で Web ソケット接続を処理するための推奨される方法である場合)、新しく到着したQueryオブジェクトをQuery.objectsに追加するにはどうすればよいですか?オブジェクトをデータベースに保存する必要はありません。 Web ソケット サーバーに送信する前に既に挿入されているため、(II) 対応する Django テンプレートのコンテンツを更新します。