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

FlaskでGET・POSTリクエストを処理する方法を完全ガイド!初心者でもわかる超入門

FlaskでGET・POSTリクエストを処理する方法!初心者向けにやさしく解説
FlaskでGET・POSTリクエストを処理する方法!初心者向けにやさしく解説

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

生徒

「Flaskってよく聞くんですが、そもそも何ができるんですか?」

先生

「Flask(フラスク)は、Pythonというプログラミング言語で作られた、Webアプリを作るためのツールです。Webサイトを作るときに使われますよ。」

生徒

「Webアプリって、たとえば何ができるんですか?」

先生

「たとえば、ログイン画面を作ったり、入力フォームからデータを送ったりすることができます。今日は、その中でも『GETリクエスト』と『POSTリクエスト』の処理方法を学びましょう!」

1. Flaskとは?初心者にもわかる超基本

1. Flaskとは?初心者にもわかる超基本
1. Flaskとは?初心者にもわかる超基本

Flask(フラスク)は、PythonでWebアプリケーションを作るための軽量フレームワークです。フレームワークとは、何かを作るときに必要な部品をあらかじめ用意してくれている道具箱のようなものです。Flaskを使うと、難しい設定をしなくても、すぐにWebサイトのようなものを作り始めることができます。

2. GETリクエストとPOSTリクエストとは?

2. GETリクエストとPOSTリクエストとは?
2. GETリクエストとPOSTリクエストとは?

Webサイトを使っているとき、私たちは何気なくボタンを押したり、リンクをクリックしたりしていますよね。実はその裏側では、「GET(ゲット)」や「POST(ポスト)」といった通信が行われています。

  • GETリクエスト:主に「ページを開く」ときに使われます。例:ニュース記事を読むとき。
  • POSTリクエスト:主に「データを送信する」ときに使われます。例:お問い合わせフォームやログイン画面。

この2つの違いを理解することで、Webアプリを作るときにどちらを使えばいいかがわかるようになります。

3. FlaskでGETリクエストを処理する基本コード

3. FlaskでGETリクエストを処理する基本コード
3. FlaskでGETリクエストを処理する基本コード

では、まずはFlaskを使って、GETリクエストを処理してみましょう。以下のようなコードを書くだけで、簡単なWebページを表示することができます。


from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'こんにちは!これはGETリクエストで表示されています。'

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

app.route('/') は、「トップページにアクセスされたときに実行される関数を指定する」という意味です。この場合、「http://localhost:5000」にアクセスすると「こんにちは!」という文字が表示されます。

4. FlaskでPOSTリクエストを処理する方法

4. FlaskでPOSTリクエストを処理する方法
4. FlaskでPOSTリクエストを処理する方法

次は、フォームから送られてくるデータを処理するPOSTリクエストの方法を見てみましょう。

まずは、HTMLのフォームを表示するページを作り、そのフォームから名前を送信できるようにします。


from flask import Flask, request

app = Flask(__name__)

@app.route('/form', methods=['GET'])
def form():
    return '''
        <form action="/submit" method="post">
            名前: <input type="text" name="name">
            <input type="submit" value="送信">
        </form>
    '''

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    return f'{name}さん、こんにちは!'

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

このコードでは、/formにアクセスすると、名前を入力できるフォームが表示されます。そして、送信すると/submitにPOSTリクエストが送られ、入力された名前が表示されます。

5. GETとPOSTを同じページで処理するには?

5. GETとPOSTを同じページで処理するには?
5. GETとPOSTを同じページで処理するには?

1つのURLでGETとPOSTの両方を処理したいときもあります。たとえば、同じページにフォームを表示しつつ、送信されたデータも処理したい場合です。


from flask import Flask, request

app = Flask(__name__)

@app.route('/greet', methods=['GET', 'POST'])
def greet():
    if request.method == 'POST':
        name = request.form['name']
        return f'{name}さん、こんにちは!'
    return '''
        <form method="post">
            名前: <input type="text" name="name">
            <input type="submit" value="送信">
        </form>
    '''

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

request.methodを使って、GETかPOSTかを判定しています。POSTなら名前を取り出して表示し、GETならフォームを表示します。

6. なぜGETとPOSTを使い分ける必要があるの?

6. なぜGETとPOSTを使い分ける必要があるの?
6. なぜGETとPOSTを使い分ける必要があるの?

GETとPOSTを正しく使い分けることで、次のようなメリットがあります。

  • セキュリティ:パスワードなどの機密情報はGETではなくPOSTで送信した方が安全です。
  • URLの見た目:GETはURLにデータが表示されるため、検索や共有に便利です。
  • 意図の明確化:GETは「データを見る」、POSTは「データを送る」と分けることで、アプリの動きが分かりやすくなります。

7. Flaskアプリの実行方法と注意点

7. Flaskアプリの実行方法と注意点
7. Flaskアプリの実行方法と注意点

FlaskアプリはPythonファイルとして保存して、ターミナルで実行します。ファイル名がapp.pyの場合、以下のようにして起動します。


python app.py

実行すると、次のような表示が出ます。


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

このURLにブラウザでアクセスすると、自分が作ったWebアプリが表示されます。
Flaskはとても軽くてシンプルなので、初心者でもすぐにWeb開発を始められます。

まとめ

まとめ
まとめ

Flaskで学んだGETとPOSTの基本を丁寧に振り返る

Flaskを使ったWebアプリ開発では、「GETリクエスト」と「POSTリクエスト」を正しく使い分けることがとても大切でした。入力フォームを設置したり、画面を切り替えたり、ユーザーの行動に応じた処理を行うための基礎が、この二つの仕組みによって成り立っています。特に初心者のうちは、動作を試しながら「どのタイミングでGETが使われているのか」「どの場面でPOSTが使われるのか」をひとつずつ理解していくことで、だんだんとアプリの動きが見えてきます。

Flaskでは、app.route()を使ってURLごとに処理を分けたり、methods=['GET', 'POST']を指定してひとつのページで両方のリクエストを扱ったりすることができました。日常的に使うログイン画面やフォーム送信の仕組みも、これらの基本が土台になっています。使い分けが自然にできるようになると、自作のWebアプリもぐっと充実していきます。

また、GETは「ページを取得する」、POSTは「データを送信する」という役割をはっきり分けることで、ユーザーにも開発者自身にも優しい設計につながります。特に、セキュリティの観点で大切な値をPOSTで適切に扱うことで、安全で信頼できるアプリに近づいていけます。さらに、URLに情報が載る特性を活かして検索性を高めたり、共有しやすいページ構造を工夫したりといった応用も可能になります。

Flaskでよく使う基本のサンプルプログラム

ここでは復習として、GETとPOSTを同時に扱うシンプルなサンプルコードをもう一度まとめておきます。フォームの入力から結果の表示まで一連の流れがつかみやすく、自分で書き換えて試しやすい便利な例です。


from flask import Flask, request

app = Flask(__name__)

@app.route('/sample', methods=['GET', 'POST'])
def sample():
    if request.method == 'POST':
        user = request.form.get('user', '')
        return f"{user}さん、送信ありがとうございます!"
    return '''
        <form method="post">
            お名前: <input type="text" name="user">
            <input type="submit" value="送信">
        </form>
    '''

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

実際に動かしながら確認すれば、GETでページが表示され、POSTでデータが送信される流れが自然と理解できるようになります。小さな一歩でも、確実に身につけていくことでWebアプリ開発の幅はどんどん広がっていきます。

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

生徒

「今日はGETとPOSTの使い方がよくわかりました。特に、同じページで両方を処理できるって便利ですね。」

先生

「そうですね。フォームを表示する時はGETで、送信するときはPOSTという流れが自然に理解できれば、より実践的なアプリを作れるようになりますよ。」

生徒

「なるほど…。POSTはデータを安全に扱うためにも重要なんですね。URLに情報が残らないっていう点も安心です。」

先生

「その通りです。今回の基本がしっかり理解できれば、ログイン、検索、登録フォームなど、さまざまなページの仕組みを組み立てられますよ。」

生徒

「ありがとうございます!次はもっと応用的なページ作りにも挑戦してみたいです!」

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

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

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

Flaskとは何ですか?Python初心者でも使えますか?

Flask(フラスク)はPythonでWebアプリケーションを作るための軽量フレームワークで、初心者でも簡単にWeb開発を始めることができます。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
New2
Flask
FlaskでリダイレクトやURL生成を行う方法!便利な関数の使い方を解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Flask
Flask‑Mailの使い方!アプリからメールを送信する基本方法を解説
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Django
DjangoとFlaskの違いを完全比較!初心者でもわかるPythonフレームワーク入門
No.3
Java&Spring記事人気No3
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.6
Java&Spring記事人気No6
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.7
Java&Spring記事人気No7
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説