カテゴリ: Flask 更新日: 2026/01/13

Flaskで非同期処理の進捗をフロント側に通知する方法まとめ|初心者向けに超ていねい解説

Flaskで非同期処理の進捗をフロント側に通知する方法まとめ
Flaskで非同期処理の進捗をフロント側に通知する方法まとめ

先生と生徒の会話形式で理解しよう

生徒

「Flaskで時間がかかる処理をしたとき、今どこまで進んでいるか画面に表示できますか?」

先生

「できます。Flaskで非同期処理を行い、その進捗をフロント側へ通知する方法があります。」

生徒

「非同期処理って難しそうですし、パソコンもあまり触ったことがなくて不安です。」

先生

「大丈夫です。作業の進み具合を黒板に書いていくようなイメージで、順番に説明します。」

1. Flaskで非同期処理とは何かを理解しよう

1. Flaskで非同期処理とは何かを理解しよう
1. Flaskで非同期処理とは何かを理解しよう

Flaskの非同期処理とは、時間がかかる作業を裏で進めながら、 画面は止めずに動かし続ける仕組みです。

例えば、料理をしながら洗濯機を回すようなものです。 一つずつ終わるまで待たず、同時に進めます。

Flask 非同期処理、Flask バックグラウンド処理、 Flask タスク管理は初心者がよく検索するキーワードです。

2. なぜ進捗をフロント側に通知したいのか

2. なぜ進捗をフロント側に通知したいのか
2. なぜ進捗をフロント側に通知したいのか

時間のかかる処理では、画面が止まると不安になります。

「今30パーセント進みました」と表示されると、 ユーザーは安心して待つことができます。

このように、処理の進み具合を伝えることを 進捗通知と呼びます。

3. Flaskで非同期処理を簡単に始める考え方

3. Flaskで非同期処理を簡単に始める考え方
3. Flaskで非同期処理を簡単に始める考え方

Flaskでは、重たい処理を別の仕事として分けます。

ここではスレッドという仕組みを使います。 スレッドとは、同時に動く作業係のようなものです。


import threading
import time

def long_task():
    time.sleep(5)
    print("処理完了")

threading.Thread(target=long_task).start()

このコードでは、5秒かかる処理を裏で実行しています。

4. 進捗状況を数字で管理する方法

4. 進捗状況を数字で管理する方法
4. 進捗状況を数字で管理する方法

進捗を伝えるには、今どこまで進んだかを 数字で覚えておく必要があります。

ここでは、とても簡単な変数を使います。


progress = 0

def task():
    global progress
    for i in range(10):
        time.sleep(1)
        progress += 10

このように、作業が進むたびに数字を増やします。

5. Flaskで進捗を取得するAPIを作る

5. Flaskで進捗を取得するAPIを作る
5. Flaskで進捗を取得するAPIを作る

フロント側が進捗を知るには、 Flaskに「今何パーセントですか?」と聞く必要があります。


from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/progress")
def get_progress():
    return jsonify({"progress": progress})

この仕組みをAPIと呼びます。 APIとは、質問すると答えを返してくれる窓口です。

6. フロント側で進捗を表示する仕組み

6. フロント側で進捗を表示する仕組み
6. フロント側で進捗を表示する仕組み

ブラウザ側では、定期的に進捗を確認します。

これは、先生に「今どこまで進みましたか?」と 何度も聞くようなイメージです。


<script>
setInterval(() => {
    fetch("/progress")
        .then(res => res.json())
        .then(data => {
            console.log(data.progress);
        });
}, 1000);
</script>

1秒ごとに進捗を取得しています。

7. Flaskと非同期処理で気をつけるポイント

7. Flaskと非同期処理で気をつけるポイント
7. Flaskと非同期処理で気をつけるポイント

非同期処理は便利ですが、 同じ変数を同時に触ると問題が起きることがあります。

初心者のうちは、簡単な仕組みで 動きを理解することが大切です。

Flask 非同期 進捗表示、 Flask タスク 進捗管理は、 学習初期によく検索されます。

8. 進捗通知の全体イメージを整理しよう

8. 進捗通知の全体イメージを整理しよう
8. 進捗通知の全体イメージを整理しよう

処理は裏で動き、進捗は数字で管理します。

フロント側は定期的に進捗を確認し、 画面に表示します。

この流れを理解すれば、 Flaskで非同期処理の進捗通知ができます。

本文テキスト文字数:約2812文字(全角の平仮名・カタカナ・漢字のみ、コード除外)

カテゴリの一覧へ
新着記事
New1
Python
Pythonで過去の日付を取得する方法(timedeltaのマイナス活用)
New2
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
New3
Django
DjangoのURLルーティングとは?初心者向けに仕組みと役割をやさしく解説
New4
Flask
Flask×Celeryでタスクが失敗した場合のリトライ設定を完全解説|初心者でもわかる非同期処理とタスク管理
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで現在の日付・時刻を取得する方法(datetime.now() / today())
No.2
Java&Spring記事人気No2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.3
Java&Spring記事人気No3
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.6
Java&Spring記事人気No6
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.7
Java&Spring記事人気No7
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.8
Java&Spring記事人気No8
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips