FlaskのGETとPOSTの違いをいい加減覚えようよ。

  • URLをコピーしました!

こんにちはちゆりです。

pythonのFlaskを勉強し始めて数時間程でまずぶち当たる壁は

GETとPOSTどっち使ったらいいねん!!問題だと思います。

僕は困ったらPOSTを使えばいい。とりあえずPOSTを使っておけばなんとかなると教わったので意識してGETを使ったことはありませんでした。

それじゃあいかんでしょ。ということでGETとPOSTの違いを備忘録的にまとめておく。

目次

ざっくりGETとPOST

GET?は?POST?は?なんやねん。

GETとPOST
GETとPOSTは入力フォームのデータを送信するときに利用します。

例えばこんな入力フォーム

入力フォームに入力した値をPythonに渡して(送信して)Python側で処理をするという流れです。

このとき入力フォームを実装しているHTML側でGETで送信するかPOSTで送信するかを記述するのですが,一応どちらでも送信できます。

では,どちらを使うのが良いのか。

GETはこんなとき/特徴

  • データの取得をしたいときに使用(データベースの書き換えがないとき)
  • 送信されるデータがURLに付加される

例えばこんなふうに長々と送信情報がURLにて付加されていることが分かる。

"127.0.0.1:5000/?yourname=tiyuri&age=25"

「?」パラメータのはじまり
「=」挟んだ左側がGETの変数名、右側が渡される値
「&」パラメータの切れ目

POSTはこんなとき/特徴

  • データを変更したいときに使用(データベースの書き換えが必要なとき)

ここで言う変更はデータの新規登録,ソート,削除,更新

  • 送信されるデータはメッセージボディ内に含まれるためURLに情報の不可はされない。(内部でデータを保持する。)

パスワードなどの秘匿性のあるものの送信を行う場合は,POSTを用いる。

また,送信できる情報が多い場合にも(GETは2048文字,POSTは無制限)

結果,POST使っておけば無難

GETやPOSTが用意されていますが,実は全てPOSTを使っておけば問題ないです。

強いて言うなら。GETを使うと

  • 情報を保持した状態をブックマークに登録できる

URLにパラメーターを持つため,URLでどのような情報を持っているか判別できるからです。

  • ログを残すことができる。

これももちろんURLに情報が保持れますからアクセスURLをログとして確認することができます。

また,デバッグ段階でパラメーターの情報を簡単にURLから見れますよね。

 

以上GET/POSTのざっくり特徴説明でした。

参考に過去の記事でSQLiteへの接続をFlaskで記述しています。

 

この記事ではしっかりPOST使っています。

データベースの扱いがメインなので。。。

 

ありがとう

 

HTMLにGETかPOSTか指定する場合は<form>タグに記述

<form action="#" method="get">~</form>

<form action="#" method="post">~</form>

ここらへんの説明はあまりできてないですね。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次