Как исправить ошибку в flask request.form?

Здравствуйте. у меня есть такой код:
<label>
    <textarea name="recipe" rows="15" cols="55"></textarea>
</label>
<form action="/save" method="POST">
    <input type="submit" value="Сохранить">
</form>

from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def index():
    return render_template("create.html")
@app.route('/save', methods=['POST', 'GET'])
def do_save():
    if request.method == 'POST':
        recipe = request.form['recipe']
        print(recipe)
    else:
        print("GET")
    return render_template('index.html')

При нажатии кнопки Сохранить выскакивает ошибка werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. KeyError: 'recipe'. Если сделать recipe = request.form.get('recipe')
то print возвращает None.
Подскажите пожалуйста, в чем проблема? Почему Flask не может получить ключ recipe, хотя в HTML коде он есть, и я ввожу в него информацию?
  • Вопрос задан
  • 1043 просмотра
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Потому что у тебя текстовое поле не привязано к форме, добавь к форме id а к текстовому поля указатель на форму:
<label>
    <textarea name="recipe" rows="15" cols="55" form="some-form"></textarea>
</label>
<form id="some-form" action="/save" method="POST">
    <input type="submit" value="Сохранить">
</form>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы