Я нашел много в этом, но я просто не могу заставить его работать. В принципе, у меня есть кнопка, и, нажимая ее, я хочу вернуть это значение обратно в мою фальш-бэкэнд.Кнопка флажка, передающая переменную обратно на python
HTML Button:
<form action="" method="POST" ><button class="btn btn-danger" type="submit" name="delete" value="{{ item2 }}"><span class="glyphicon glyphicon-trash"></span> Delete</button> </form>
Python:
@app.route('/', methods=["GET","POST"])
def home():
if request.method == 'POST':
if request.form['delete'] == post_id:
(my sql login/cursor stuff....)
sql = "DELETE FROM test_table WHERE post_id = ?"
c.execute(sql, (post_id,))
return redirect("/")
Как вы можете видеть, я заселение ссылки (и последующей переменной) с дзиндзя. Он заполнил кнопку так, как должен, но отправка ее обратно на мой скрипт python не работает.
UPDATE: Когда я запустил это, я получаю внутреннюю ошибку сервера. Я не вижу, что такое ошибка маршрутизации, потому что я не могу отлаживать работу (используя wsgi/werkzeug).
Я думаю, мы можем окончательно сказать, что, не определяя post id
, почему он не работает. Итак, мой вопрос: когда кнопка отправляет данные BACK на python, какое значение (и как) делает захват python? это name=
или value=
или что-то еще?
Не могли бы вы рассказать нам больше о том, что не работает? Я создал простой вид в существующем приложении Flask, используя ваш код, и он прошел тест для 'request_method == 'POST'' и перенаправил меня обратно в URL'/'. Очевидно, что я удалил материал mysql и тест для значения post_id, но те части, которые я могу проверить, работают правильно (включая атрибут value ввода кнопки). – YellowShark
Когда я нажимаю кнопку, я получаю ошибку: Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо есть ошибка в приложении. –
Что вы ожидаете от 'post_id' в' if request.form ['delete'] == post_id'? Вы не определили эту переменную. – davidism