
python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...
目次
目標
- Flask-SocketIOを使って、同じテーブルからアクセスしている全端末にリアルタイムで注文を反映させる
- 「会計予定に変更」「注文可能に戻す」のボタンを同じテーブルに接続している他の端末でもリアルタイムに連動して反映させる
Flask-SocketIO
Flask-SocketIOの概要
Flask-SocketIOは、Flaskアプリケーションに双方向のリアルタイム通信機能を追加するための拡張機能です。WebSocketや長輪講(Long Polling)などの通信手段を使って、クライアントとサーバー間で即時にデータをやり取りできます。
Flask-SocketIOの利用方法
Flask-SocketIOを利用するにはインストールが必要です。次のコマンドでインストールします。
pip install flask-socketio

インストールが完了したらFlaskアプリケーションに組み込んでイベントの定義をし、クライアント側で通信を行わせます。
feature-socketioブランチ
ここでは、注文管理アプリケーションでFlask-SocketIOを利用するのでブランチの名前を「feature-socketioブランチ」とします。次のコマンドで「feature-socketioブランチ」を作成します。
git checkout -b feature-ordersapp-visual コマンド

管理者用注文管理アプリケーションの修正プログラミング(1)
同じテーブルからアクセスしている全端末にリアルタイムで注文を反映させる修正
app.pyの編集(ordersapp内)
app.pyファイルの下に次のプログラムを追加します。
from flask_socketio import SocketIO, emit, join_room
socketio = SocketIO() # グローバルなSocketIOインスタンス
def init_socketio(app):
socketio.init_app(app)
@socketio.on("join")
def handle_join(data):
table_id = data.get("table_id")
join_room(f"table_{table_id}")
print(f"Client joined room: table_{table_id}")
@socketio.on("new_order")
def handle_new_order(data):
table_id = data.get("table_id")
print(f"New order received for table: {table_id}")
emit("order_updated", {"message": "注文が更新されました"}, room=f"table_{table_id}")
app.pyの編集(ordersapp内)
app.pyファイルを次のように編集します。

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...

【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
Blueprint Flask Flask-SocketIO Flask-SQLAlchemy Jinja2 MVT python session SQLite アップロード エンジニア セッション テンプレートエンジン バリデーション フレームワーク ルーティング 作成方法 初心者 利用方法 注意点 画像 統合
この続きはNoteとなります。