400 Bad Request: The browser (or proxy) sent a request that this server could not understand.が出た時の対応例

Flaskでブログアプリを作成中、ブログ一覧機能を作っていた時の事。

ブログ作成ボタンを押したら下記エラー(下から6行を引用)をブラウザが吐き出してそこから進まない。

まずは一番下から”~400 Bad Request: The browser (or proxy) sent a request that this server could not understand.”をグーグルで調べる。
見つけたサイトによると

Bad Request. Your browser sent a request that this server could not understand

が濃厚。
postコマンドの内容が悪いらしい。
でも何なのか良く分からない。

この上の”~werkzeug/datastructures.py”, line 442, in getitem”の部分は恐らく自分でなんとか出来る場所では無さそう。

で、その次”~flask_blog/views/entries.py”, line 29, in add_entry
text=request.form[‘text’]”の辺りでなんか悪いのかも知れないので、views/entries.pyの29行目近辺を見てみる。

何度見てもおかしな所は無い。
一度該当箇所を消して書き直してもブラウザは同じエラーを吐き出す。
ここは違うのかも知れない。

ふとサーバー自体の動きが気になった。

ブログ作成ボタンを押した時のサーバーサイドの反応を確認。

エラーの前にある”127.0.0.1 – – [11/Apr/2021 16:38:12] “GET /entries/new HTTP/1.1” 200 -“が気になって、entries/new.htmlをチェック。

‘name=textrows=”3″‘のtextとrowsの間にスペースが無かった!
正しくは下記。これはコードを書いている途中に気付いておきたかった。反省。

見事に解決、リスト表示が出来る様になった。

ファイル通しの繋がりがまだ掴めていないが、エラーが出た際にはブラウザの吐き出すエラーの場所だけでは無く、サーバーが吐き出すデータも見ると良さそうだ。