web-dev-qa-db-ja.com

Flask-POST Error 405 Method Not Allowed

Flaskを習い始めたばかりで、[〜#〜] post [〜#〜]メソッドを許可するフォームを作成しようとしています。

私の方法は次のとおりです。

@app.route('/template', methods=['GET', 'POST'])
def template():
    if request.method == 'POST':
        return("Hello")
    return render_template('index.html')

と私 index.html

<html>

<head>
  <title> Title </title>
</head>

<body>
  Enter Python to execute:
  <form action="/" method="post">
    <input type="text" name="expression" />
    <input type="submit" value="Execute" />
  </form>
</body>

</html>

フォームの読み込み([〜#〜] get [〜#〜]を受け取ったときにレンダリングする)は正常に機能します。 submitボタンをクリックすると、POST 405 error Method Not Allowed

なぜ"Hello"が表示されないのですか?

55
darksky

メソッドが/にルーティングされる場合、フォームが/templateに送信されます。タイプミスでない限り、フォームのaction属性を調整してtemplateビューを指すようにしてください:action="{{ url_for('template') }}"

40
Burhan Khalid

交換:

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

で:

 <form action="{{ url_for('template') }}" method="post">
14
thikonom

action属性を省略すると、フォームは現在のURLに投稿します。

交換:

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

で:

<form method="post">
4
Ankur_Jatt