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

FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方

FlaskでPOSTリクエストを受け取る方法!JSONデータの受け取り方を解説
FlaskでPOSTリクエストを受け取る方法!JSONデータの受け取り方を解説

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

生徒

「PythonのFlaskで、外部から送られてくる情報を受け取るにはどうしたらいいですか?」

先生

「FlaskではPOST(ポスト)リクエストという方法を使って、外から送られてきたデータを受け取ることができますよ。」

生徒

「POSTってなんですか?難しそうです……」

先生

「心配いりません!郵便を受け取るようなイメージで考えればOKです。ゆっくり一緒に学んでいきましょう!」

1. POSTリクエストとは?初心者向けにやさしく解説

1. POSTリクエストとは?初心者向けにやさしく解説
1. POSTリクエストとは?初心者向けにやさしく解説

「POSTリクエスト」とは、インターネットを通じてサーバーに“情報を送る”ための仕組みです。たとえば、会員登録フォームで名前やパスワードを入力して送信すると、その情報はPOSTという方法で送られています。つまりPOSTは「相手にそっと荷物を渡す」ようなイメージで捉えるとわかりやすいでしょう。

そしてFlaskを使えば、この“荷物を受け取るポスト”を自分で作ることができます。あなたが作ったアプリが住所(URL)を持ち、その場所に向けて送られた情報を受け取る仕組みを簡単に準備できます。Webアプリ開発の基本になる部分なので、ゆっくりイメージをつかんでいきましょう。

以下は、POSTリクエストが届いたことをシンプルに確認するだけのミニサンプルです。まだJSONの処理などは行いませんが、「POSTで送られてきたことをFlaskが受け取れる」という最初の感覚をつかむのに役立ちます。


from flask import Flask, request

app = Flask(__name__)

@app.route('/hello', methods=['POST'])
def hello_post():
    return "POSTリクエストを受け取りました!"

if __name__ == '__main__':
    app.run(debug=True)

このコードを実行して、外部から/helloにPOSTリクエストを送ると「POSTリクエストを受け取りました!」という返信が返ってきます。これが“受け取る側”の最も基本的な仕組みです。まずは「FlaskはPOSTを受け取れるんだ」という感覚をつかむことから始めましょう。

2. JSON(ジェイソン)とは?初心者にもわかるように説明

2. JSON(ジェイソン)とは?初心者にもわかるように説明
2. JSON(ジェイソン)とは?初心者にもわかるように説明

次に登場する「JSON(ジェイソン)」とは、データを整理してわかりやすく保存したり送ったりするための形式です。テキストで書かれているので人間にも読みやすく、パソコンにとっても扱いやすいため、多くのWebサービスで使われています。住所や名前などの情報を、箱にラベルを付けて並べるようなイメージで理解するとわかりやすいでしょう。

JSONは必ずキー(名前)のセットで書かれます。たとえば以下の例は、「名前」と「年齢」という2つの情報を持つシンプルなJSONです。


{
    "name": "Taro",
    "age": 25
}

この形は、「name というラベルには Taro、age というラベルには 25という値が入っていますよ」という意味です。まるで、ノートに名前と数字を書き込んで整理するような感覚です。Flask では、このJSONをそのまま受け取り、Pythonの変数として扱うことができるので、とても相性のよいデータ形式と言えます。

以下は、受け取ったJSONをそのまま表示するだけの簡単なサンプルです。これで「FlaskがJSONをどのように見ているか」がイメージしやすくなります。


from flask import Flask, request

app = Flask(__name__)

@app.route('/show', methods=['POST'])
def show_json():
    data = request.get_json()  # JSONを受け取る
    return f"受け取ったJSONは:{data}"

if __name__ == '__main__':
    app.run(debug=True)

このサンプルにJSONを送ると、Flaskはそのままの形で内容を返してくれます。まずはJSONがどう見えるのか、自分で送って確かめてみると理解が一気に深まるでしょう。

3. FlaskでPOSTリクエストを受け取る準備をしよう

3. FlaskでPOSTリクエストを受け取る準備をしよう
3. FlaskでPOSTリクエストを受け取る準備をしよう

POSTリクエストを受け取るためには、まずFlaskを使える状態にしておく必要があります。Flaskはとても軽量なWebフレームワークで、初心者でも簡単に扱えることが大きな魅力です。まずはパソコンにFlaskをインストールして、Webアプリを動かすための“土台”を整えていきましょう。

ターミナル(黒い画面)を開いて、次のコマンドを入力します。これは「Flaskという道具をパソコンに取り入れてください」という意味の命令です。


pip install flask

インストールが成功すると、Flaskを使ったWebアプリをすぐに作れる状態になります。次に、Flaskアプリの基本となる「最初の1ページ」を作ってみましょう。以下のコードは、アプリが正しく動くかどうか確認するための最もシンプルな例です。


from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Flaskの準備ができました!"

if __name__ == '__main__':
    app.run(debug=True)

このコードを実行し、ブラウザで http://localhost:5000 にアクセスすると、「Flaskの準備ができました!」と表示されます。これが確認できれば、POSTリクエストを扱うための準備はばっちりです。ここから先は、実際にデータを受け取るコードに進んでいくことができます。

4. 実際にFlaskでJSONデータを受け取るサンプルコード

4. 実際にFlaskでJSONデータを受け取るサンプルコード
4. 実際にFlaskでJSONデータを受け取るサンプルコード

ここでは、Flaskを使って実際にPOSTリクエストからJSONデータを受け取る方法を、初心者向けにわかりやすく紹介します。JSONの中身をPythonで扱える形に変換してくれるため、送られてきた情報をそのままアプリで利用できます。まずは「どんなふうに受け取れるのか」を感覚的に掴むことがとても大切です。


from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/receive', methods=['POST'])
def receive_data():
    data = request.get_json()  # JSONデータを受け取る
    name = data.get('name')
    age = data.get('age')

    # 受け取ったデータをそのままメッセージにして返す
    return jsonify({
        'message': f'{name}さん({age}歳)、データを受け取りました!'
    })

if __name__ == '__main__':
    app.run(debug=True)

このサンプルでは、外部から送られてきたJSONを request.get_json() で取り出し、Pythonの辞書のように扱える状態にしています。そのため data.get('name') のように、項目ごとに安全に取り出すことができます。初心者の方でも、「郵便物をひとつずつ開いて中身を見る」ような感覚で理解できるはずです。

送られてきたJSONに含まれる名前や年齢を取り出して、そのままメッセージとして返しているため、どの値が届いているかをすぐに確認できます。まずはこの仕組みを動かしてみることで、POSTリクエストがどのようにアプリへ届くのか自然と理解できるようになります。

5. 実際にJSONデータを送るには?Postmanの活用

5. 実際にJSONデータを送るには?Postmanの活用
5. 実際にJSONデータを送るには?Postmanの活用

プログラムが書けても、実際にデータを送ってみないと動作確認できません。そこで便利なのが「Postman(ポストマン)」という無料のアプリです。これは、データを送る練習ができるツールです。

Postmanを使って、以下のようなJSONデータをPOST送信します:


{
    "name": "Hanako",
    "age": 30
}

送り先のURLには http://localhost:5000/receive と入力します。送信すると、以下のような結果が返ってきます。


{
    "message": "Hanakoさん(30歳)、データを受け取りました!"
}

このように、Flaskが外部からのPOSTリクエストとJSONデータをしっかり受け取っていることが確認できます。

6. request.get_json()ってなに?簡単に解説

6. request.get_json()ってなに?簡単に解説
6. request.get_json()ってなに?簡単に解説

request.get_json()は、「送られてきたJSONデータを取り出すための命令」です。

例えるなら、「郵便受けから手紙を取り出す動作」です。JSONデータという「手紙」を読み取るために使います。

この命令を使うことで、名前や年齢といった情報をPythonの変数に入れることができるのです。

7. FlaskのルーティングとPOSTの違い

7. FlaskのルーティングとPOSTの違い
7. FlaskのルーティングとPOSTの違い

Flaskでは、@app.route()を使って、どのURLでどんな処理をするかを指定します。

今回のコードでは、/receiveというURLでmethods=['POST']と書いています。これは「この場所はPOST専用ですよ」という意味です。

もしmethods=['GET']と書いた場合は、「受け取る」ではなく「取りに行く」という意味になります。

8. 送られてくるデータがない場合のエラー対策

8. 送られてくるデータがない場合のエラー対策
8. 送られてくるデータがない場合のエラー対策

データが正しく送られてこないとき、プログラムが止まってしまうことがあります。そんなときの対策も入れておくと安心です。


@app.route('/receive', methods=['POST'])
def receive_data():
    data = request.get_json()
    if not data:
        return jsonify({'error': 'データが送られていません'}), 400
    name = data.get('name', '名前なし')
    age = data.get('age', '年齢不明')
    return jsonify({
        'message': f'{name}さん({age}歳)、データを受け取りました!'
    })

このように書くことで、何も送られてこなかったときにも丁寧にエラーメッセージを返すことができます。

まとめ

まとめ
まとめ

FlaskでPOSTリクエストを受け取り、JSONデータを処理する仕組みを学ぶと、Webアプリケーションがどのように外部からのデータを扱っているのかが一気に理解しやすくなります。とくに初心者の方にとっては、POSTという言葉そのものが難しく感じられることもありますが、実際には郵便を受け取るように「データを受信するための方法」にすぎません。インターネットではフォームの送信やログイン、設定情報の更新など、さまざまな処理がPOSTリクエストによって行われています。これを自分のアプリで扱えるようになると、Web開発の幅が大きく広がります。

JSONというデータ形式も、現代のWebアプリでは欠かせない存在です。JSONは人間にも読みやすく、プログラムにも扱いやすいため、多くのAPIが標準的に採用しています。今回の例では名前や年齢を受け取りましたが、実際のアプリでは住所や商品の情報、ユーザー設定、センサーから送られるデータなど、さまざまな情報がJSON形式でやり取りされます。こうした仕組みを理解することで、API同士の連携や外部サービスとの統合もスムーズに進められるようになります。

また、POSTリクエストを受け取る際には、Flaskの@app.route()methods=['POST']request.get_json()といった重要な要素が登場します。それぞれの意味を理解しながら進めることで、Webアプリの内部でどのようにデータが流れているのかを自然にイメージできるようになります。たとえば、ルーティングは「どのURLに来たデータをどの関数で処理するか」を決めるものですし、get_json()は送られてきたJSONデータを読み取るための入り口です。こうした基礎がしっかりしていると、より複雑なAPIも落ち着いて扱うことができます。

さらに、エラーハンドリングも大切な学習ポイントです。実際の開発では「データが送られてこない」「形式が違う」「必要な項目が抜けている」など、プログラムが想定していない状況が頻繁に起こります。そのため、データが空だった場合や不正な内容だった場合にどう対応するかを考えておくことは非常に重要です。今回紹介したように、400というコードを使って丁寧にエラーメッセージを返すことは、APIを使う側のユーザーにも親切です。

このように、FlaskでPOSTリクエストとJSONの受け取り方を理解すると、Webアプリケーション開発に必要な基礎がしっかり身につきます。学んだ内容を生かして、オリジナルのAPIやフォーム処理、外部サービスとの連携などにもどんどん挑戦してみてください。

POSTリクエスト受け取りの基本コードまとめ


from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/receive', methods=['POST'])
def receive_data():
    data = request.get_json()
    if not data:
        return jsonify({'error': 'データが送られていません'}), 400

    name = data.get('name', '名前なし')
    age = data.get('age', '年齢不明')

    return jsonify({
        'message': f'{name}さん({age}歳)、データを受け取りました!'
    })

if __name__ == '__main__':
    app.run(debug=True)

実際にこのコードを動かしながら、JSONデータがどのように処理されて返却されるかを確認してみると、より理解が深まりやすくなります。いろいろな値を送ってみたり、エラーをわざと起こしてみたりすると、学習がさらに楽しくなるはずです。

先生と生徒の振り返り会話

生徒

「先生、POSTリクエストって難しいと思っていましたが、仕組みがわかると意外とシンプルなんですね。」

先生

「その通りですよ。データを送る方法のひとつと考えれば、自然と理解できます。JSONの形にも慣れてきたでしょう?」

生徒

「はい!JSONは読みやすくて扱いやすいので、もっといろいろなデータを送ってみたくなりました。」

先生

「よい姿勢ですね。POSTと組み合わせると、アプリはもっと実用的になります。エラーメッセージの返し方も覚えておくと、使う側への気配りにもなりますよ。」

生徒

「たしかに、丁寧に返すと使いやすさが全然違いますね。自分でもこういうAPIを作れるように練習してみます!」

先生

「ぜひ挑戦してみてください。手を動かすほど理解は深まりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

FlaskでPOSTリクエストとは何ですか?初心者にもわかりやすく教えてください。

FlaskでのPOSTリクエストとは、外部から情報を送信してサーバー側で受け取る仕組みのことです。たとえば、名前や年齢などのデータをフォームなどから送る際に使われます。POSTは「送る」、GETは「取りに行く」という違いがあります。
カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
New2
Python
Pythonで日付文字列から曜日を取得する方法を完全ガイド!初心者でもわかる日時処理入門
New3
Flask
FlaskアプリのSSL設定方法をやさしく解説!初心者でもわかるHTTPS対応の手順
New4
Python
Pythonでリストを辞書に変換する方法を完全ガイド!初心者でもわかるdict()とzip()の使い方
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.5
Java&Spring記事人気No5
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説