カテゴリ: Django 更新日: 2026/03/22

DjangoでPOSTデータを受け取る方法を完全解説!request.POSTの基本を初心者向けにやさしく理解

DjangoでPOSTデータを受け取る方法(request.POST)
DjangoでPOSTデータを受け取る方法(request.POST)

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

生徒

「Djangoでフォームを送信したときのデータって、どうやって受け取るんですか?」

先生

「Djangoでは、request.POSTという仕組みを使うと、送信されたデータを受け取れます。」

生徒

「POSTって何ですか?パソコンを触るのも初めてで…」

先生

「大丈夫です。POSTは『紙に書いた申し込み用紙を箱に入れて渡す』ようなものだと思ってください。」

1. POSTとは何かを超かんたんに理解しよう

1. POSTとは何かを超かんたんに理解しよう
1. POSTとは何かを超かんたんに理解しよう

POSTとは、Webサイトで入力した内容をサーバーに送る方法のひとつです。名前やメールアドレスを入力して送信する場面を想像してください。そのとき入力した情報は、こっそり中身を見せずにサーバーへ届けられます。この方法がPOSTです。

Djangoでは、このPOSTで送られてきたデータをrequest.POSTという箱から取り出します。箱の中には、入力されたデータが「項目名」と「値」のセットで入っています。

2. requestとは何かをイメージで覚えよう

2. requestとは何かをイメージで覚えよう
2. requestとは何かをイメージで覚えよう

requestは、ブラウザからDjangoに届いた「お願いの封筒」です。その中には、どのページを見たいか、どんなデータを送ったかなど、たくさんの情報が入っています。

POSTで送信されたデータは、その封筒の中のPOSTというポケットに入っています。だからrequest.POSTと書くことで、送信された内容を取り出せるのです。

3. フォームからPOSTデータを送る基本例

3. フォームからPOSTデータを送る基本例
3. フォームからPOSTデータを送る基本例

まずは、HTMLでフォームを作ります。フォームは「入力用紙」のようなものです。ここでは名前を送信する簡単な例を見てみましょう。


<form method="post">
    {% csrf_token %}
    <input type="text" name="username">
    <button type="submit">送信</button>
</form>

method="post"と書くことで、このフォームはPOST送信になります。name="username"が、データを取り出すときのキーになります。

4. Djangoビューでrequest.POSTを受け取る方法

4. Djangoビューでrequest.POSTを受け取る方法
4. Djangoビューでrequest.POSTを受け取る方法

次に、DjangoのビューでPOSTデータを受け取ります。ビューは「受付係」のような役割で、送られてきた情報を最初に受け取ります。


from django.http import HttpResponse

def sample_view(request):
    if request.method == "POST":
        name = request.POST["username"]
        return HttpResponse(name)
    return HttpResponse("フォームを送信してください")

request.methodでPOSTかどうかを確認し、request.POST["username"]で値を取り出しています。

5. getメソッドを使った安全な取り出し方

5. getメソッドを使った安全な取り出し方
5. getメソッドを使った安全な取り出し方

初心者のうちは、データが存在しない場合のエラーに戸惑いやすいです。そんなときはgetを使うと安心です。


def safe_view(request):
    if request.method == "POST":
        age = request.POST.get("age", "未入力")
        return HttpResponse(age)
    return HttpResponse("POSTしてください")

この書き方なら、値がなくてもエラーにならず、初心者でも安心して扱えます。

6. 複数のPOSTデータを受け取る方法

6. 複数のPOSTデータを受け取る方法
6. 複数のPOSTデータを受け取る方法

フォームでは、名前や年齢など、複数のデータを同時に送ることがよくあります。request.POSTはそれぞれの値をまとめて持っています。


def multi_view(request):
    if request.method == "POST":
        name = request.POST.get("name")
        email = request.POST.get("email")
        return HttpResponse(name + " / " + email)
    return HttpResponse("入力してください")

それぞれのname属性に対応したキーで取り出せばOKです。

7. request.POSTは辞書のような仕組み

7. request.POSTは辞書のような仕組み
7. request.POSTは辞書のような仕組み

request.POSTは、Pythonの辞書とよく似た構造をしています。ラベルと中身がセットになっている箱だと考えると理解しやすいです。


def debug_view(request):
    if request.method == "POST":
        for key in request.POST:
            print(key, request.POST[key])
        return HttpResponse("確認完了")
    return HttpResponse("POST待ち")

このように中身を順番に確認することもできます。

8. POSTデータを扱うときの注意点

8. POSTデータを扱うときの注意点
8. POSTデータを扱うときの注意点

POSTデータは、必ず「送信されたときだけ」存在します。そのため、POSTかどうかの確認はとても重要です。また、入力内容はそのまま信じず、正しくチェックする意識も大切です。

Djangoでは、request.POSTを正しく理解することで、安全で使いやすいWebアプリ開発の第一歩を踏み出せます。

カテゴリの一覧へ
新着記事
New1
Flask
FlaskでJSONレスポンスを返す方法!初心者でもわかるAPIの基本出力
New2
Python
Pythonのbytes型とbytearray型とは?初心者向けにバイナリデータの扱い方を解説!
New3
Python
Pythonのbreak・continue・passを比較しよう!それぞれの役割と使い方まとめ
New4
Flask
FlaskでAPIを作る基本!初心者向けに仕組みと特徴をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Django
Djangoマイグレーションの基本コマンド完全解説|makemigrationsとmigrateでDB設計を理解しよう
No.2
Java&Spring記事人気No2
Flask
Flask×Redisでタスク結果を保存・参照する仕組みを完全解説|初心者向け非同期処理とタスク管理
No.3
Java&Spring記事人気No3
Flask
Flaskプロファイラでボトルネックを特定!Webアプリ高速化の決定版
No.4
Java&Spring記事人気No4
Python
Pythonでタプルの最大値・最小値を取得する方法!max()・min()の使い方
No.5
Java&Spring記事人気No5
Flask
FlaskのAPIでファイルアップロードを受け付ける方法!初心者でもわかる解説
No.6
Java&Spring記事人気No6
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonのイミュータブルとは?変更できないデータ型の特徴を解説
No.8
Java&Spring記事人気No8
Flask
Flask拡張機能を活用したアプリ開発のポイントとベストプラクティス!初心者でも安心ガイド