「Pythonでアプリ開発ってなんだか難しそう…どこから手をつければいいの?」
そう感じている方、多いんじゃないでしょうか。でも実は、Flaskを使えばたった数十行のコードでWeb APIが動かせます。今回はゼロから一緒に作りながら、Pythonアプリ開発の第一歩を踏み出してみましょう! 🐍
この記事の対象読者・難易度

- ✅ Pythonの基本文法(変数・関数・if文)はなんとなくわかる
- ✅ アプリやAPIを作ってみたいけど何から始めるか迷っている
- ✅ Flaskという名前は聞いたことあるけど触ったことはない
難易度:★★☆☆☆(初〜中級者向け)
プログラミング経験ゼロの方には少し難しいかもしれませんが、Pythonを少しでも触ったことがあればきっと大丈夫です。
そもそもWeb APIって何?
「API」という言葉、よく聞きますよね。むずかしそうに聞こえますが、イメージとしては「データのやり取りをするための窓口」です。
たとえば、スマホアプリが天気情報を表示するとき、裏側では天気サービスのAPIに「今日の東京の天気を教えて!」とリクエストを送って、データを受け取っています。それだけのことなんですよね。
つまりWeb APIとは:
- URLにアクセスするとデータ(JSONなど)が返ってくる仕組み
- フロントエンドやスマホアプリと連携するバックエンドの役割を担う
- Flaskを使うとPythonだけで簡単に作れる
Flaskとは?なぜFlaskを選ぶの?
FlaskはPython製の軽量Webフレームワークです。「フレームワーク」というのは、アプリ開発に必要な便利な道具がまとめてパッケージになったもの、くらいに思ってください。
PythonのWebフレームワークにはDjangoという大きな選択肢もありますが、初心者にはFlaskのほうが断然おすすめです。理由はシンプルで:
- 🔰 必要最低限の機能だけ持っていてシンプル
- 📄 コード量が少なく、全体像が把握しやすい
- ⚡ 数分でサーバーを起動できる
「むずかしそう」を「できそう」に変えてくれるのがFlaskです。さっそく使っていきましょう!
環境準備:Flaskをインストールしよう
まずはFlaskをインストールします。ターミナル(コマンドプロンプト)で以下のコマンドを実行してください。
pip install flask
インストールが完了したら、確認しておきましょう。
pip show flask
バージョン情報が表示されればOKです 👌
STEP 1:最小構成のFlaskアプリを動かす
まずは「Hello, World!」を返すだけの最もシンプルなAPIを作ってみます。app.pyというファイルを作成して、以下のコードを書いてみてください。
# app.py
from flask import Flask
# Flaskアプリのインスタンスを作成
app = Flask(__name__)
# 「/」というURLにアクセスされたときの処理
@app.route('/')
def index():
return 'Hello, Flask! 🎉'
# このファイルを直接実行したときだけサーバーを起動
if __name__ == '__main__':
app.run(debug=True)
ポイントをまとめるとこんな感じです👇
- @app.route(‘/’):URLのパスと関数を結びつける「デコレータ」です
- debug=True:コードを変更したとき自動でサーバーが再起動します(開発時に便利!)
- 関数が返した文字列がそのままレスポンスになります
ターミナルで python app.py を実行し、ブラウザで http://127.0.0.1:5000/ にアクセスしてみてください。「Hello, Flask! 🎉」と表示されれば成功です!
STEP 2:JSONを返すWeb APIを作る
実際のAPIはHTMLではなくJSON形式でデータを返します。FlaskにはJSONを簡単に返せる jsonify という機能があります。
# app.py(JSONを返すAPIに拡張)
from flask import Flask, jsonify
app = Flask(__name__)
# ダミーのユーザーデータ
users = [
{'id': 1, 'name': '田中 太郎', 'email': 'taro@example.com'},
{'id': 2, 'name': '佐藤 花子', 'email': 'hanako@example.com'},
]
# 全ユーザーを返すエンドポイント
@app.route('/api/users', methods=['GET'])
def get_users():
# リストをJSONとして返す
return jsonify(users)
# 特定のユーザーをIDで取得するエンドポイント
@app.route('/api/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
# IDが一致するユーザーを探す
user = next((u for u in users if u['id'] == user_id), None)
if user is None:
# 見つからなければ404エラーを返す
return jsonify({'error': 'User not found'}), 404
return jsonify(user)
if __name__ == '__main__':
app.run(debug=True)
ここが重要です✍️
- /api/users:全ユーザーをJSON配列で返します
- /api/users/<int:user_id>:URLの一部を変数として受け取れます(例:
/api/users/1) - 見つからないときは404ステータスコードを返すのがAPIの基本マナーです
ブラウザで http://127.0.0.1:5000/api/users にアクセスするとJSONが表示されるはずです。試してみてください!
STEP 3:POSTリクエストでデータを受け取る
「データを送信して登録する」という処理も作ってみましょう。これでAPIらしくなってきます 🚀
# app.py(POSTリクエストを受け取る機能を追加)
from flask import Flask, jsonify, request
app = Flask(__name__)
users = [
{'id': 1, 'name': '田中 太郎', 'email': 'taro@example.com'},
]
@app.route('/api/users', methods=['GET'])
def get_users():
return jsonify(users)
# POSTリクエストで新しいユーザーを追加
@app.route('/api/users', methods=['POST'])
def create_user():
# リクエストのJSONボディを取得
data = request.get_json()
# 簡単なバリデーション(nameとemailが必要)
if not data or 'name' not in data or 'email' not in data:
return jsonify({'error': 'name と email は必須です'}), 400
# 新しいユーザーを作成してリストに追加
new_user = {
'id': len(users) + 1,
'name': data['name'],
'email': data['email'],
}
users.append(new_user)
# 201 Created を返すのがRESTfulなAPIの慣習
return jsonify(new_user), 201
if __name__ == '__main__':
app.run(debug=True)
動作確認はcurlコマンドで試せます。
curl -X POST http://127.0.0.1:5000/api/users \
-H "Content-Type: application/json" \
-d '{"name": "山田 次郎", "email": "jiro@example.com"}'
ポイントをまとめるとこんな感じです👇
- request.get_json():POSTで送られてきたJSONデータを受け取れます
- バリデーション(入力チェック)を必ず入れるのが大切です
- 新規作成成功時は201ステータスを返すのがRESTful APIの慣習です
まとめ
今回はFlaskを使ってWeb APIをゼロから作る方法を解説しました。改めて流れを振り返ると:
- Flaskをインストールして最小構成のアプリを起動
jsonifyを使ってJSONを返すGET APIを作成request.get_json()でPOSTデータを受け取り、データ追加APIを実装
Flaskは「シンプルに始められて、必要に応じて拡張できる」のが最大の魅力です。今回のコードを土台にして、データベース連携やユーザー認証など、次のステップへ進んでみてください 💪
ぜひ手を動かして試してみてください。「むずかしそう」が「意外とできる!」に変わる瞬間、きっと楽しいですよ 😊





