Django Academy · レッスン

CSRF保護とPOSTの流れ

GET/POSTによる送信処理を安全に扱います

レッスン 4/413 ステップ

「CSRF保護とPOSTの流れ」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

What CSRF Is

CSRF tricks a logged-in user into submitting a hidden request. Django blocks it so attackers cannot act on a user's behalf. 🔒

Protection Is On

Django enables CsrfViewMiddleware by default, so every unprotected POST is rejected until you add the right token.

The csrf_token Tag

Add {% csrf_token %} inside every POST form. It injects a hidden field with a per-session secret token.

<form method="post">
  {% csrf_token %}
</form>

Why It Works

The token proves the request came from your own page. A forged form on another site cannot guess it, so the POST fails.

GET Shows the Form

A GET request displays a blank, unbound form so the user can start typing their input.

if request.method == "GET":
    form = ContactForm()

POST Submits the Data

A POST sends the filled values back. You bind them to the form and run validation before doing anything.

if request.method == "POST":
    form = ContactForm(request.POST)

Validate Then Act

If the bound form is_valid(), process cleaned_data: save it, send an email, or whatever the form is for.

if form.is_valid():
    save(form.cleaned_data)

Redirect After Success

On success, redirect to a new URL. This Post/Redirect/Get pattern stops a refresh from resubmitting the data.

return redirect("thanks")

Re-render on Errors

If validation fails, re-render the same template with the bound form. It still holds the input and shows each error.

return render(request, "contact.html",
    {"form": form})

The Full Pattern

This GET-to-show, POST-to-process shape is the standard form view. One view handles both methods cleanly.

form = ContactForm(request.POST or None)
if form.is_valid():
    return redirect("thanks")

Mind AJAX Requests

JavaScript POSTs must send the token in the X-CSRFToken header, read from the csrftoken cookie, or Django rejects them.

Quick Check

Check your CSRF and POST knowledge.

Recap

Add csrf_token to every POST form. GET shows the form, POST validates it, then redirect on success or re-render on errors. ✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「CSRF保護とPOSTの流れ」レッスンは無料ですか?

はい。「CSRF保護とPOSTの流れ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「CSRF保護とPOSTの流れ」で何を学びますか?

GET/POSTによる送信処理を安全に扱います ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「CSRF保護とPOSTの流れ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. forms.Formを定義する
  2. is_validとcleaned_data
  3. テンプレートでフォームをレンダリングする
  4. CSRF保護とPOSTの流れ
← Django Academyに戻る