フレームワークを整える
中級Flask を整える。
= ルートを書いてリクエストを送る——Python の Web フレームワークをサーバーなしで往復させる
Flask が初めての方は、先に そもそも Flask とは・どんな場面で使うか をどうぞ。
サンプルコード(クリックでエディタとフォームに反映)
リクエストを送る
RESPONSE
左のルートを書いて「▶ 送信」を押すと、ここに応答が出ます。
STDOUT(print 出力)
print 出力なし
そもそも Flask とは
URL ごとに Python の関数を1つ書くだけで、Web の入り口が作れる道具。
Flask は、Python で Web アプリや Web API を作るための軽量なフレームワークです。「この URL にアクセスが来たら、この関数を動かす」という対応を @app.route という飾り(デコレータ)で書いていくだけで動き始めます。
同じ Python の Django が、管理画面や認証まで最初から揃った「全部入り」なのに対し、Flask は必要な部品を自分で足していく「小さく始める」タイプです。そのぶん仕組みが見えやすく、Web の基本を学ぶ最初の一歩にも向いています。
どこで・どんな場面で使うか
-
小さな API・社内ツール
Slack 連携の受け口、データを返すだけの小さな API、社内向けの管理画面など、規模の小さいサービスでよく選ばれます。
-
機械学習モデルの公開
Python で作った予測モデルを、HTTP 経由で呼び出せるようにする「入り口」として使われることがあります。
-
試作・プロトタイプ
アイデアを短いコードですばやく動かして見せたいとき。数十行で動くので、最初の確認に向きます。
-
Web の仕組みの学習
ルーティング、リクエストとレスポンス、ステータスコードといった Web の基本を、Python で一通り体験できます。
-
既存の Python 資産とつなぐ
分析・自動化のために書いた Python のコードを、そのまま Web から呼べる形にしたいときに使われます。
向いている場面・向いていない場面
- 向いている:小さく始めて、必要になったら部品を足していくサービス。1ファイルで全体が見渡せます。
- 向いている:Web の仕組みを自分の手で理解したい学習。魔法のような自動処理が少ないので、何が起きているか追いかけやすいです。
- 注意:ログイン・管理画面・データベースの管理まで最初から欲しい大きなサービスでは、全部入りの道具のほうが早いこともあります。目的で選びましょう。
上の練習場で、ルートを書いてリクエストを送り、どんな応答が返るかを試してみてください。
使い方
4 ステップで Flask の骨格をつかむ。
- 1
Hello — @app.route で URL と関数を結ぶ
@app.route("/")を付けた関数が、その URL にアクセスされたときに呼ばれます。 - 2
パスパラメータ — URL の一部を引数として受け取る
/user/<name>の<name>がそのまま関数の引数になります。 - 3
JSON API — jsonify で JSON を返す
フロントエンドや別プログラムから呼ばれる API の基本形。辞書やリストを渡すだけで JSON レスポンスになります。
- 4
POST とフォーム — request でデータを受け取る
request.form(フォーム送信)とrequest.get_json()(JSON 送信)の2通りを試せます。
💡 このツールはサーバーを起動しません。Flask 自身のテスト機能(app.test_client())を使い、
「リクエストを送る → ルート関数が呼ばれる → レスポンスが返る」という往復だけをブラウザ内で再現しています。
実際にポートを開いて待ち受けるわけではないので、実務の Flask アプリと1対1ではありませんが、ルート定義の書き方や挙動の確認には十分です。
🌐 通信について補足します。「▶ 送信」を最初に押した1回だけ、Python の実行環境(Pyodide 0.28.0)を配信元の
cdn.jsdelivr.net から取得します(初回のみ約10MB、以降はブラウザキャッシュ)。
続けて Flask 一式(5個の wheel ファイル・合計約0.5MB)を、totonoe 自身が配信する
/wheels/ から取得します(外部のパッケージ配布元へは接続しません)。
Flask は BSD ライセンスで配布されているオープンソースソフトウェアです。
いずれもプログラムを受け取るだけの通信で、あなたが書いたコードやリクエストの内容が外部へ送られることはありません(送信ゼロ)。
このツールについて
Flask は「URL(ルート)ごとに関数を1つ書く」だけで Web API が作れる Python の軽量フレームワーク。ブラウザの中だけで動くので、ルートを書いて → リクエストを送って → レスポンスがどう返るかを安全に何度でも試せます。
ブラウザ内で Flask を動かす Playground。ルートを書いて、メソッド・パス・ボディを指定して送信すると、サーバーを起動せず Flask のテストクライアントで往復を再現します。
主な機能
- 4サンプル(Hello・パスパラメータ・JSON API・POST とフォーム)
- メソッド・パス・ボディ・Content-Type を指定して送信、ステータス・ヘッダ・本文を表示
- サーバーは起動せず app.test_client() で往復を再現
- Flask 一式は totonoe 自身の /wheels/ から配信(BSD)・Pyodide は初回のみ約10MB・送信ゼロ
よくある質問
Q. Flask のサーバーは本当に起動しているのですか?
A. 起動していません。Flask 自身のテスト機能(app.test_client())でリクエストとレスポンスの往復だけを再現しています。ルート定義の書き方や挙動の確認には十分ですが、ネットワーク越しにアクセスできるわけではありません。
Q. なぜ Flask は最初から入っていないのですか?
A. Pyodide に同梱されるパッケージに Flask は含まれないためです。totonoe 自身が配信する純 Python の wheel 5本(blinker・click・itsdangerous・werkzeug・flask)を micropip で読み込んでいます。
Q. 書いたコードやリクエスト内容は送信されますか?
A. されません。最初の1回だけ Python 実行環境と Flask 一式をダウンロードしますが、あなたが書いたコードや入力内容が外部に送られることはありません(送信ゼロ)。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。
続けて整える
フレームワーク・同カテゴリ
Sails.js を整える(ルーティング練習場)
routes.js を書いてリクエストを送る——Node.js の MVC フレームワークの「どこに届くか」をブラウザで確かめる
開くフレームワーク・同カテゴリ
Three.js を整える(Playground)
Scene・Camera・Renderer を組んで回す——3D をブラウザだけで WebGL 描画
開くWeb技術・関連
HTTPステータスコードを整える
200や404、500が何の意味かを引ける早見表
開くフレームワーク・関連
htmx を整える(Playground)
HTML に属性を足すだけで動く htmx を、サーバーの代わりに JSON で応答するモックで確かめる練習場
開くデータの時点:各ページに記載の版(各プロジェクトの公式リリース)
この内容は、研修でも扱っています
totonoe.tech を運営する株式会社Koinobori は、法人向けの研修サービス「NOBORIBA®」も運営しています。 ここで手を動かした内容を、講師から教わる形の研修です。このページの道具は無料のまま、登録もいりません。