Flask Academy · レッスン

ルートで許可するメソッドを宣言する

@app.routeにmethodsを渡してGETとPOSTを許可します

レッスン 1/413 ステップ

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

ルートのデフォルトはGET

これまでに作成したFlaskのルートは、すべてGETリクエストにのみ応答します。ブラウザーはページの取得にGETを使うため、自然なデフォルトです。

methods引数

ほかのメソッドを受け付けるには、ルートデコレーターにmethodsリストを渡します。これにより、ビューが処理するHTTPメソッドをFlaskに正確に伝えられます。

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

GETを明示的に列挙する理由

methodsを設定すると、暗黙的なGETはなくなります。GETも受け付けたい場合は、自分でリストに含める必要があります。

POST専用ルート

ページを提供すべきでないエンドポイントもあります。POSTだけを指定してルートをPOST専用にすると、GETリクエストは拒否されます。

@app.route("/api/items", methods=["POST"])
def create_item():
    return "created"

メソッドは大文字の文字列

Flaskでは各メソッドを「GET」や「POST」のような大文字の文字列で指定します。小文字の指定は受信したリクエストと一致しません。

HEADも自動的に使える

GETを許可すると、FlaskはHEADにも自動的に応答します。HEADはGETと同じヘッダーを返しますが、本文は返しません。

OPTIONSも追加される

FlaskはOPTIONSも自動的に処理し、ルートが受け付けるメソッドを列挙したAllowヘッダーを返します。

GETとPOSTを超えて

APIでは、さらに多くのメソッドが必要になることがあります。同じ方法でPUT、PATCH、DELETEを列挙し、リソースの更新や削除に対応できます。

@app.route("/api/items/<id>", methods=["PUT", "DELETE"])
def edit_item(id):
    return "changed"

1つの関数で複数のメソッド

1つのビューで複数のメソッドを同時に受け付けられます。その中で各メソッドの動作を決めれば、すべてを1つの関数で処理できます。

意図に合ったメソッドを使う

読み取りにはGET、作成にはPOSTを使います。適切なメソッドを選ぶことで、どのクライアントにとっても予測しやすいAPIになります。

メソッドが違えば一致しない

クライアントが指定したメソッドをリストに含めていない場合、Flaskはリクエストを完全に拒否します。methodsの宣言は、最初のアクセス制御になります。

簡単な確認

methodsを設定したとき、GETがどうなるか考えてみましょう。

まとめ

ルートはデフォルトでGETになりますが、methodsリストを使うとPOSTやPUTなども受け付けられます。GETも必要な場合は、自分でリストに追加してください。よくできました!🎉

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「ルートで許可するメソッドを宣言する」レッスンは無料ですか?

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

「ルートで許可するメソッドを宣言する」で何を学びますか?

@app.routeにmethodsを渡してGETとPOSTを許可します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「ルートで許可するメソッドを宣言する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. ルートで許可するメソッドを宣言する
  2. request.methodで処理を分岐する
  3. 本文からPOSTデータを読み取る
  4. 405 Method Not Allowedを解説
← Flask Academyに戻る