Flask Academy · レッスン

POSTするHTMLフォームを構築する

actionの送信先をルートにしたフォームを作成します

レッスン 1/413 ステップ

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

フォームが重要な理由

HTMLのformは、ブラウザーが入力内容を集めてサーバーに渡すための仕組みです。ほぼすべてのユーザー操作における入り口となります。📝

form要素

すべてはformタグから始まります。ブラウザーはその中にあるフィールドをまとめ、ユーザーが送信すると一緒に送信します。

<form>
  <!-- fields go here -->
</form>

actionで送信先を指定する

action属性には、データを受け取るURLを指定します。空にすると、フォームが置かれている同じページに送信します。

<form action="/signup">

methodを選ぶ

methodをpostに設定すると、値はURLではなくリクエストボディに送られます。これによりフォームデータが整理され、ブラウザーの履歴にも残りません。

<form action="/signup" method="post">

すべてのフィールドに名前を付ける

各入力にはname属性が必要です。その名前が、サーバー側で値を探すときにFlaskが使うキーになります。

<input type="text" name="username">

送信ボタンを追加する

submitボタンが送信を開始します。クリックすると、ブラウザーは名前付きフィールドを集め、action URLにリクエストを送ります。

<button type="submit">Sign up</button>

ルートのメソッドを一致させる

受け取るルートではPOSTを許可する必要があります。methodsに指定しないと、Flaskは405を返し、フォームデータは届きません。

@app.route("/signup", methods=["GET", "POST"])
def signup():
    ...

request.formから値を読み取る

サーバー側では、送信されたフィールドはrequest.formに格納されます。これは、HTMLで定義した各入力のnameをキーとする辞書に似たオブジェクトです。

username = request.form["username"]

GETでフォームを表示する

リクエストがGETの場合は、空のフォームを表示するページをrenderするだけです。これでユーザーが入力できるようになります。

if request.method == "GET":
    return render_template("signup.html")

POST分岐を処理する

メソッドがPOSTの場合は、フィールドを読み取り、それに応じて処理します。1つのviewでフォームの表示と送信のprocessを両方行えます。

if request.method == "POST":
    name = request.form["username"]

完全なミニフォーム

フォームを組み立て、/signupにPOSTし、ユーザーに挨拶するviewを作成します。これが数行で実現する完全なround tripです。

@app.route("/signup", methods=["GET", "POST"])
def signup():
    if request.method == "POST":
        return "Hi " + request.form["username"]
    return render_template("signup.html")

簡単な確認

フォームが実際にPOSTするために必要なものを確認しましょう。

まとめ:フォームのPOST

formにactionとpostメソッドを設定し、フィールドに名前を付け、ルートでPOSTを許可し、request.formから値を読み取りました。🎉

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「POSTするHTMLフォームを構築する」レッスンは無料ですか?

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

「POSTするHTMLフォームを構築する」で何を学びますか?

actionの送信先をルートにしたフォームを作成します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「POSTするHTMLフォームを構築する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. POSTするHTMLフォームを構築する
  2. クエリパラメーターを読み取りデフォルト値を設定する
  3. 必須フィールドを手動で検証する
  4. POST後にリダイレクトする(PRGパターン)
← Flask Academyに戻る