Ответ 1
Ваша форма отправляет /
, когда метод маршрутизируется для /template
, если это не опечатка, вы должны настроить атрибут формы action
и указать его на '/template'
.
Я только начинаю изучать 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) отлично работает. Однако, когда я нажимаю кнопку отправки, я получаю метод POST 405 Method Not Allowed. Почему не отображается Hello?
Ваша форма отправляет /
, когда метод маршрутизируется для /template
, если это не опечатка, вы должны настроить атрибут формы action
и указать его на '/template'
.
Заменить:
<form action="/" method="post">
с:
<form action="/template" method="post">
Если вы не хотите каждый раз запоминать URL-адрес, тогда сделайте это. Он будет работать нормально.
Заменить:
<form action="/" method="post">
с:
<form action="" method="post">