[解決済み】Flaskのエラー。"メソッドが許可されていません 要求されたURLに対してメソッドが許可されていません"
2022-02-05 20:34:13
質問内容
Flaskのフォームにデータを送信しようとすると、以下のエラーが発生します。
Method Not Allowed The method is not allowed for the requested URL.
に問題があると思います。
return redirect(url_for('database'))
しているんです。また
return render_template('database.html)
もあります。フォームの入力がデータベースに送信された時点で、データベースのページを呼び出そうとしているのです。
私のコードの関連する部分は以下の通りです。
@app.route('/entry', methods=['GET', 'POST'])
def entry_page():
if request.method == 'POST':
date = request.form['date']
title = request.form['blog_title']
post = request.form['blog_main']
post_entry = models.BlogPost(date = date, title = title, post = post)
db.session.add(post_entry)
db.session.commit()
return redirect(url_for('database'))
else:
return render_template('entry.html')
@app.route('/database')
def database():
query = []
for i in session.query(models.BlogPost):
query.append((i.title, i.post, i.date))
return render_template('database.html', query = query)
entry.html は...
THIS IS THE BLOG ENTRY PAGE
blog:
<html>
<form action='/database' method = "post">
date<input name = "date" type = "text" class="text">
title<input name = "blog_title" type = "text" class="text">
main<input name = "blog_main" type = "text" class="text">
<input type = "submit">
</form>
</html>
とdatabase.html...
THIS IS THE QUERY:
{{query}}
解決方法は?
ここで起こっているのは、データベースルートがどんなURLメソッドも受け入れないということです。
私は、あなたがentry_page関数にあるように、アプリルートにurlメソッドを入れてみる。
@app.route('/entry', methods=['GET', 'POST'])
def entry_page():
if request.method == 'POST':
date = request.form['date']
title = request.form['blog_title']
post = request.form['blog_main']
post_entry = models.BlogPost(date = date, title = title, post = post)
db.session.add(post_entry)
db.session.commit()
return redirect(url_for('database'))
else:
return render_template('entry.html')
@app.route('/database', methods=['GET', 'POST'])
def database():
query = []
for i in session.query(models.BlogPost):
query.append((i.title, i.post, i.date))
return render_template('database.html', query = query)
関連
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Flaskのリクエストで受信したデータを取得する
-
[解決済み] Flaskの開発サーバーをネットワーク上で見えるように設定する
-
[解決済み] Flaskのルートでクエリ文字列にアクセスする方法は?
-
[解決済み] Flaskを使用してURLから名前付きパラメータを取得するにはどうすればよいですか?
-
[解決済み】FlaskはオプションのURLパラメータを持つことができますか?
-
[解決済み】FlaskでURLへのリダイレクトを行う。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない