本文へスキップ
totonoe.tech

フレームワークを整える

中級

Flask を整える。

= ルートを書いてリクエストを送る——Python の Web フレームワークをサーバーなしで往復させる

Flask が初めての方は、先に そもそも Flask とは・どんな場面で使うか をどうぞ。

サンプルコード(クリックでエディタとフォームに反映)

FLASK APP(Python) app = Flask(__name__)

リクエストを送る

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. 1

    Hello — @app.route で URL と関数を結ぶ

    @app.route("/") を付けた関数が、その URL にアクセスされたときに呼ばれます。

  2. 2

    パスパラメータ — URL の一部を引数として受け取る

    /user/<name> の <name> がそのまま関数の引数になります。

  3. 3

    JSON API — jsonify で JSON を返す

    フロントエンドや別プログラムから呼ばれる API の基本形。辞書やリストを渡すだけで JSON レスポンスになります。

  4. 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の「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

続けて整える

データの時点:各ページに記載の版(各プロジェクトの公式リリース)

データの更新予定の一覧

totonoe.tech を運営する株式会社Koinobori は、法人向けの研修サービス「NOBORIBA®」も運営しています。 ここで手を動かした内容を、講師から教わる形の研修です。このページの道具は無料のまま、登録もいりません。

運営サイト

私たちが運営するサイト