2016-05-09 3 views
-1

У меня есть вопрос о Python. Я пытаюсь получить несколько кнопок в одной форме, но это не работает.Python Flask request.form не работает

Я пробовал использовать if 'elem' in request.form, но это не работает, потому что submit 's не идут в request.form. Вы знаете, как это происходит?

Я уже пробовал решить это с помощью этого: Flask Python Buttons Но это не сработало. Google не работает и для меня, поэтому, зачем это нужно здесь.

Python код:

@app.route('/option_new_sender/', methods = ['GET','POST']) 
def option_new_sender(): 
# Add selected elements to session['added_elements'] 
if 'add_elem' in request.form: 
    return 'a' 
# Delete Selected elements from session['added_elems'] 
elif 'remove_elem' in request.form: 
    return 'b' 
# Reset verwijderd session['added_elems'] 
elif 'reset' in request.form: 
    return 'c' 
# Verzend form en voegt toe aan 'entries_plot_list 
elif 'send_form' in request.form: 
    return 'd' 
else: 
    return 'e' 

HTML код:

<form action={{url_for("option_new_sender")}} method="POST"> 
<h2>Een nieuwe grafiek toevoegen</h2> 
Titel: <input type="text" name="title" value={{title}}><br/> 
Perc: <input type="text" name="perc" value={{perc}}><br/> 
<select name = "added_elems" multiple size="5"> 
    {% for elem in elems %} 
     <option value = "{{elem}}">{{elem}}</option> 
    {% endfor %} 
</select> 
<button type= "submit" value = "remove_elem">Remove element</button> 
</br></br> 
Element: 
<select name = "elem" multiple size = "5"> 
    {% for elem in all_elems %} 
     <option value = "{{elem}}">{{elem}}</option> 
    {% endfor %} 
</select> 
<button type="submit" value = "add_elem">Add element</button> 
<button type="submit" value = "send_form">Verzenden</button> 
<button type="submit" value = "reset">Reset</button> 
</form> 

Это не имеет значения, что я стараюсь, по какой-то причине Submit всегда заканчивается на 'е'. Спасибо заранее!

+0

вы пробовали просто распечатав 'request.form', чтобы увидеть, как это выглядит? –

+0

Мишель: Да, у меня есть! Request.form дает это, когда в таблицах ничего не выбрано: ImmutableMultiDict ([('title', ''), ('perc', '')]) – Tunder250

ответ

1

Для любого элемента, который должен быть отправлен в HTTP POST, он должен иметь атрибут name. У ваших кнопок нет, поэтому вам нужно их добавить.

<button type="submit" name="add_elem" value="add">Add element</button> 
+0

Спасибо! Этот вопрос решил проблему. Я думаю, что я должен был поменять «ценность» и «имя» в моей голове. – Tunder250

-1

Попробуйте

<button type="submit" name="add_elem" value="add">Add element</button> 
<button type="submit" name="send_form" value="send">Verzenden</button> 
<button type="submit" name="reset" value="reset">Reset</button> 
Смежные вопросы