[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 の下でライセンスされています。
