Webチャットアプリを作る ( Django + Channels )
Django と Channels を用いて、Webチャットアプリを作成する方法を解説します。
Django は、Pythonで実装されたWebアプリケーションフレームワークです。Django を利用するとWebアプリケーションを簡単に作成することができます。
Channelsは、DjangoでWebSocketの送受信を可能とするPythonパッケージです。Channelsを利用するとWebSocketを使用したWebアプリケーションを簡単に作成することができます。
使用開発環境は、以下です。
Python : version 3.8.6
Django : version 3.1.4
Channels : version 3.0.2
channels-redis : version 3.2.0

| 01. Djangoプロジェクトの作成 | |
| Python の仮想環境を作成します。Python のパッケージをインストールします。Djangoプロジェクトを作成します。 | |
| 02. チャットページの表示 | |
| チャットページの表示をできるようにします。チャットメッセージの送受信はまだできません。 | |
| 03. Channelsパッケージの有効化 | |
| WebSocketの送受信を可能とするモジュールである Channelsパッケージを有効化します。 | |
| 04. Redisの有効化 | |
| Channelsのチャンネルレイヤーがバックストアとして使用するRedisを有効化します。 | |
| 05. チャットメッセージの送受信 | |
| チャットメッセージの送受信ができるようにします。 | |
| 06. WebSocket Consumer の処理の非同期処理化 | |
| パフォーマンスを向上させるために、WebSocket Consumerの処理を、同期ではなく非同期の処理に書き換えます。 | |
| 07. メッセージに発言者名の追記 | |
| メッセージに発言者名が追記されるようにします。 | |
| 08. チャットルームに分かれてチャット | |
| チャットルームに分かれてチャットができるようにします。 | |
| 09. 入退室ユーザー名、参加人数の表示 | |
| ユーザーの入室/退室に際して、入退室ユーザー名、参加人数が表示されるようにします。 デモ(Heroku):https://mychat-django.herokuapp.com/ |
|
参考
- Getting started with Django | Django
- Writing your first Django app, part 1 | Django documentation | Django
- Django Channels — Channels 3.0.2 documentation
- Tutorial — Channels 3.0.2 documentation
