投稿

[Python 100日チャレンジ] Day 84 - Flaskでフォーム処理

FlaskでHTMLフォームからPOSTデータを受け取り、入力値を検証する基本を学びます。

[Python 100日チャレンジ] Day 84 - Flaskでフォーム処理

フォームを表示する

HTMLフォームは、ユーザーから入力を受け取るために使います。

1
2
3
4
<form method="post">
  <input type="text" name="title">
  <button type="submit">Save</button>
</form>

POSTデータを受け取る

1
2
3
4
5
6
7
8
from flask import request

@app.route("/posts/new", methods=["GET", "POST"])
def new_post():
    if request.method == "POST":
        title = request.form["title"]
        return title
    return render_template("new_post.html")

request.formから送信された値を取得できます。

入力検証

1
2
3
4
title = request.form.get("title", "").strip()

if not title:
    error = "Title is required"

空文字や長すぎる入力をチェックしてから保存します。

リダイレクト

1
2
3
from flask import redirect, url_for

return redirect(url_for("home"))

フォーム送信後は、別ページへリダイレクトする流れがよく使われます。

今日のゴール

フォーム処理では、表示、POST受信、検証、保存、リダイレクトの流れを作ります。ユーザー入力を扱うための重要な基礎です。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。