この時限を終えると、ブラウザにReflexの基本アプリが表示され、ReflexがPythonコードをどのようにウェブアプリに変えるのかを一言で説明できるようになります。
ウェブアプリは、ふつう2つの部分に分かれます。
通常は両方の言語を学ぶ必要があり、さらに両者をつなぐAPIも設計しなければなりません。Reflexは、フロントエンドもバックエンドもPythonで書けるフルスタックフレームワークです。
仕組みは3つのステップで説明できます。
.web/フォルダに出力されます。左側の1つのPythonファイルが2つに分かれます。画面の関数はReactにコンパイルされてブラウザへ送られ、Stateはサーバーに残って②→③の往復で画面と同期されます。
講師メモ — この3ステップは講座の中で何度も登場します。「画面の関数は1回、イベントの関数は毎回」という一言にまとめておき、3限目でifが使えない理由を説明するときにもう一度持ち出してください。
uvのインストール:uvは、Pythonのバージョン、仮想環境、パッケージをまとめて管理するツールです。
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | shNode.jsの確認:Reflexは、画面側(React)のパッケージのインストールと実行にNode.jsかBunを使います。Reflex 0.10はNode 22.22.0以上が必要です。
node -v # v22.22.0以上であることuv init tutorial_261019 # Pythonプロジェクトを作成
cd tutorial_261019
uv add reflex # reflexをインストール(pyproject.tomlに記録される)
uv run reflex init # Reflexアプリのひな形を作成(テンプレートを選択)
uv run reflex run # 開発サーバーを起動uv runは、プロジェクトの仮想環境(.venv)の中でコマンドを実行します。仮想環境を別途有効化する必要はありません。reflex initではテンプレートを聞かれます。空のアプリから始めたい場合は、uv run reflex init --template blankのように指定してもかまいません。reflex runが完了したら、ログに出るApp running at: http://localhost:3000のアドレスをブラウザで開きます。3000番ポートが使用中の場合は3001番などに変わります。Ctrl + Cを押します。ブラウザで確認 — --template blankで作成した直後にhttp://localhost:3000を開くと、この画面が表示されるはずです。右上の太陽アイコンはダークモードの切り替えボタンです。
講座の準備中に実際に遭遇した問題です。受講者も同じ問題にぶつかる可能性が高いので、あらかじめ案内しておきましょう。
| 症状 | 原因 | 解決策 |
|---|---|---|
reflex initの実行中にUnicodeEncodeError: 'cp949' codec can't encode character '—' | システムのコードページがUTF-8でないWindowsでは、その既定のエンコーディングでAGENTS.mdを書き込もうとして特殊文字で失敗する(例は韓国語版Windowsのcp949。日本語版Windowsのコードページはcp932なので、同じエラーが'cp932'で表示される) | setx PYTHONUTF8 1を実行してターミナルを再起動し、reflex initをもう一度実行 |
reflex runの実行中にrestartWithMergedOptions() was called, but the process has already been restarted | Nodeが基準バージョンより古いためReflexがBunランタイムを強制し、その経路でReact Routerの再起動が失敗する | Nodeを22.22.0以上にアップグレード(例:winget upgrade --id OpenJS.NodeJS.22) |
setxで設定した環境変数は、新しく開いたターミナルから反映されます。VS Codeのターミナルを使っている場合は、VS Code自体も開き直してください。winget list --name Nodeで実際のパッケージIDを確認します。node -vが22.22.0以上である。uv run reflex runのあと、ブラウザに初期画面が表示される。新しい授業・講座のお知らせを受け取る
この講座に授業が追加されたり、続きの講座が公開されたりしたらメールでお知らせします。
R
ReflexKR
触って学ぶPythonとReflex。すべての例はReflex 0.10.0で実際に動かして確認しています。
ReflexKRはバナー広告なし・無料で運営しています。役に立ったら、コーヒー一杯で応援してください。 ☕ コーヒーで応援する
アフィリエイトと支援について© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
質問と回答
この回について気になることを書き込んでください。すべての言語のページの質問がここに集まります。