カテゴリ: Flask 更新日: 2025/12/22

FlaskでJSONレスポンスを返す方法!初心者でもわかるAPIの基本出力

FlaskでJSONレスポンスを返す方法!APIの基本出力を学ぼう
FlaskでJSONレスポンスを返す方法!APIの基本出力を学ぼう

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

生徒

「PythonでWebサイトを作れるって聞いたんですけど、Flaskって何ですか?」

先生

「Flask(フラスク)は、Pythonで簡単にWebアプリケーションを作るためのツール(フレームワーク)です。ホームページを作ったり、データを返したりするのに使われます。」

生徒

「データを返すって、どういうことですか?」

先生

「例えば、アプリやWebサービスが欲しい情報を要求してきた時に、Flaskが“JSON”という形でデータを送り返すんです。これが“JSONレスポンス”です。」

生徒

「なるほど!JSONって何ですか?」

先生

「JSON(ジェイソン)は、コンピューター同士が情報をやりとりするための共通の言葉のようなものです。では実際にFlaskでJSONを返す方法を一緒に学んでみましょう!」

1. Flaskとは?超基本から解説!

1. Flaskとは?超基本から解説!
1. Flaskとは?超基本から解説!

Flask(フラスク)は、PythonでWebアプリケーションやAPIを簡単に作れる軽量なフレームワークです。フレームワークとは、「何かを作るときに使う道具のセット」とイメージすると分かりやすいでしょう。

Flaskはシンプルで直感的なので、プログラミング初心者でも扱いやすいのが特徴です。

2. APIとJSONとは?初心者向けの超やさしい説明

2. APIとJSONとは?初心者向けの超やさしい説明
2. APIとJSONとは?初心者向けの超やさしい説明

API(エーピーアイ)は「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略で、コンピューター同士が情報をやりとりする“窓口”のようなものです。

例えば、スマホアプリが天気予報の情報を欲しい時に、APIを通じて「今日の天気を教えて」と聞くと、返事として「晴れです」とデータが送られてきます。

JSON(ジェイソン)とは、その返事の形式です。人間にとって読みやすく、コンピューターにとっても扱いやすい形でデータを表現できます。

JSONの例:


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

3. Flaskを使ってJSONを返す基本コード

3. Flaskを使ってJSONを返す基本コード
3. Flaskを使ってJSONを返す基本コード

では、実際にFlaskでJSONレスポンスを返すプログラムを見てみましょう。下記のサンプルは、Flaskを使って「こんにちは」というメッセージをJSONで返す非常にシンプルな例です。


from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/hello")
def hello():
    return jsonify({"message": "こんにちは!ようこそFlaskへ!"})

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

@app.route("/hello")は、「/hello」という場所にアクセスがあったときの動きを定義しています。

jsonify()は、辞書(Pythonのデータ形式)をJSON形式に変換して返すための関数です。

4. 実行してブラウザで確認してみよう!

4. 実行してブラウザで確認してみよう!
4. 実行してブラウザで確認してみよう!

このコードを「app.py」という名前で保存し、ターミナル(黒い画面の操作画面)で下記のように実行します。


python app.py

実行後、下記のような表示が出てきます:


 * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)

ブラウザを開いて、URL欄に「http://127.0.0.1:5000/hello」と入力すると、次のような結果が表示されるはずです。


{
  "message": "こんにちは!ようこそFlaskへ!"
}

5. なぜJSONで返すの?HTMLと何が違うの?

5. なぜJSONで返すの?HTMLと何が違うの?
5. なぜJSONで返すの?HTMLと何が違うの?

HTMLは人間が見るためのデータ形式です。一方、JSONはアプリや他のシステムが処理しやすいデータ形式です。

たとえば、天気アプリや地図アプリなどは、裏でAPIを使ってJSON形式のデータを受け取り、それを画面に表示しています。

つまりJSONレスポンスは、アプリ同士の会話に使われる言語のようなものです。

6. よくある質問(初心者向けFAQ)

6. よくある質問(初心者向けFAQ)
6. よくある質問(初心者向けFAQ)

Q1. Flaskは無料ですか?
はい、完全に無料で使えます。オープンソースという仕組みで、多くの人が開発に参加しています。

Q2. Flaskはどこでインストールできますか?
Pythonをインストールしたら、コマンドプロンプトやターミナルで以下のように入力するだけでOKです。


pip install Flask

Q3. jsonifyって何ですか?
Flaskが持っている関数で、Pythonの辞書(キーと値のセット)をJSONという形に変換してくれます。

Q4. なぜ「@app.route」って書くの?
これは「この関数はどこのURLで動くのか」をFlaskに教えるための目印です。「/hello」と書くと、「http://~/hello」にアクセスしたときにこの関数が動きます。

7. もっと簡単なJSONレスポンスの例

7. もっと簡単なJSONレスポンスの例
7. もっと簡単なJSONレスポンスの例

「こんにちは」だけじゃなく、例えば数字やリスト(複数のデータ)も返すことができます。次の例を見てみましょう。


from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/info")
def info():
    return jsonify({
        "name": "Hanako",
        "age": 30,
        "hobbies": ["映画", "読書", "料理"]
    })

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

ブラウザで http://127.0.0.1:5000/info にアクセスすると、次のようなJSONが返ってきます。


{
  "name": "Hanako",
  "age": 30,
  "hobbies": ["映画", "読書", "料理"]
}

このようにFlaskを使えば、初心者でも簡単にAPIの基本出力としてJSONを返す仕組みを作ることができます。

まとめ

まとめ
まとめ

Flaskを使ってJSONレスポンスを返す仕組みは、WebアプリケーションやAPIを作るうえで欠かせない基礎となります。今回の記事では、Flaskとは何かという基本からはじまり、APIとJSONの役割、そして実際にFlaskでJSONを返すためのコードの書き方まで、順を追って深く学ぶことができました。特に、JSONという形式がアプリ同士のやり取りでどれほど重要なのかを理解することで、普段使っているサービスがどのように情報交換しているのかという裏側の仕組みが見えるようになり、プログラミングの理解がさらに広がります。 FlaskでJSONを返すコードはとてもシンプルで、初心者でも扱いやすく、短い記述の中にWebアプリの本質的な動きが凝縮されています。たとえば、@app.route でURLの入口を作り、jsonify() を使ってPythonの辞書をJSON形式に変換して返すという流れは、数行のコードで実現できるにも関わらず、他のアプリや外部システムから利用できる強力なAPIの基礎となります。この基本を理解しておくことで、外部データを取得するアプリ、チャットボット、スマートフォンアプリのバックエンドなど、応用範囲の広い開発に進むことができます。 また、FlaskでJSONを返すという操作は、情報の「見せ方」がHTMLとは違うことも理解できる良い機会です。HTMLは人が見るための形式ですが、JSONはアプリやサービスがそのまま扱える形式であるため、機械的なやり取りに向いています。その違いを踏まえることで、アプリがどのように情報を受け取り、どのように外へデータを返すのか、全体像を自然にイメージすることができます。 ここでは今回の学びを広く応用できるように、少し機能を発展させたサンプルコードを用意しました。複数のJSONレスポンスを返すルートを追加し、基本的なデータ構造がどのように返されるのかを確認できる内容です。実際にコードを動かしながら、Flaskがどのようにデータを組み立てて返しているかを確かめてみてください。

JSONレスポンスをまとめたサンプルプログラム


from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/hello")
def hello():
    return jsonify({"message": "こんにちは!FlaskからのJSONレスポンスです!"})

@app.route("/userinfo", methods=["GET"])
def userinfo():
    name = request.args.get("name", "ゲスト")
    age = request.args.get("age", "不明")
    return jsonify({
        "name": name,
        "age": age,
        "status": "情報を受け取りました"
    })

@app.route("/items")
def items():
    return jsonify({
        "items": [
            {"id": 1, "name": "りんご", "price": 120},
            {"id": 2, "name": "ばなな", "price": 80},
            {"id": 3, "name": "みかん", "price": 100}
        ]
    })

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

このサンプルでは、「/hello」でシンプルなメッセージを返し、「/userinfo」ではURLのパラメータから受け取ったデータを使って応答を返します。また、「/items」ではリスト形式のデータをJSONとして返す例となっており、複数のデータを扱うAPIを作るときの基本的な考え方が自然に身につきます。こうしたサンプルを動かしながら、辞書やリストをJSONに変換して返す動きを体感すると、Flaskがどのようにデータを構造化してWeb側に返しているかがよく分かるでしょう。 JSONレスポンスを使えるようになると、外部アプリとの連携や、JavaScriptと組み合わせた非同期処理、スマートフォンアプリのデータ取得など、さまざまな応用に発展できます。特にAPIは実際の画面を持たないぶん、コードとデータの構造をしっかり理解することが重要です。今回の内容はその基礎を丁寧に網羅しているので、今後の学習に大きく役立つはずです。 少し慣れてきたら、POSTメソッドでデータを送るAPIや、複雑なJSON構造を返すAPIにも挑戦してみるとよいでしょう。「データをどう受け取ってどう返すか」という考え方がしっかり身につけば、APIを使った開発の幅はぐっと広がり、より自由なアプリケーションづくりができるようになります。

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

生徒

「FlaskでJSONを返す仕組みって、思っていたより分かりやすいんですね。実際にブラウザで見たらきれいに整ったデータが返ってきて驚きました!」

先生

「そうでしょう。jsonifyを使うだけで、辞書データをそのままJSONにして返せるので、とても扱いやすいですよ。APIの入口として最適です。」

生徒

「パラメータをURLにつけるだけでデータを受け取れる仕組みも便利ですね。スマホアプリやWebアプリがどうやって情報を取っているのかイメージできました!」

先生

「JSONレスポンスは多くのサービスで使われているので、ここを理解しておくと応用がとても効きますよ。次はPOSTを使ってデータを送る方法もやってみましょう。」

生徒

「はい!もっと複雑なデータも返せるようになりたいです!」

先生

「その気持ちが大事です。今回の基礎がしっかり理解できていれば、応用も十分にこなせるようになりますよ。」

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

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

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

Flaskとは何ですか?Python初心者でも使える理由は?

Flaskとは、PythonでWebアプリケーションやAPIを簡単に作るための軽量なフレームワークです。直感的な構文とシンプルな構成のため、プログラミング初心者でも理解しやすく、学習に最適です。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New2
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New3
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
New4
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本