Без полного шаблона или HTML, я собираюсь предположить, что HTML <form>
действителен.См. HTML-формы и входные данные , если вы подозреваете проблему там.
Чтобы убедиться, что значения формы достигают вашей функции add_poll (), попробуйте использовать Режим отладки Flask (т.е.установите app.debug = True
до app.run()
).Для принудительного вызова отладчика вставьте ошибку в функцию add_poll () и снова отправьте форму из браузера.Копия трассировки должна появиться.Нажмите на значок «console» в последней строке трассировки (это должна быть ошибка, созданная вами в add_poll ()) и начните интерактивную проверку объекта request.form.
[console ready]
>>> request.form
werkzeug.datastructures.ImmutableMultiDict({'choicetext': u''})
>>> str(request.form)
"ImmutableMultiDict([('choicetext', u'choice1'), ('choicetext', u'choice2'), ('choicetext', u'choice3'), ('choicetext', u'choice4')])"
>>> dir(request.form)
['KeyError', '__class__', '__cmp__', '__contains__', '__copy__', '__delattr__', '__delitem__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add', 'clear', 'copy', 'fromkeys', 'get', 'getlist', 'has_key', 'items', 'iteritems', 'iterkeys', 'iterlists', 'iterlistvalues', 'itervalues', 'keys', 'lists', 'listvalues', 'pop', 'popitem', 'popitemlist', 'poplist', 'setdefault', 'setlist', 'setlistdefault', 'to_dict', 'update', 'values' ]
>>> request.form.getlist('choicetext')
[u'choice1', u'choice2', u'choice3', u'choice4']
Надеюсь, это сделаетОчистите то, что должно измениться в add_poll () и упростите будущую отладку вашего приложения.Удачи!
Для получения дополнительной информации прочитайте документацию по объектам Flask.request.form и werkzeug.datastructures.MultiDict .В качестве примера обработки проверки формы в Flask (следующий шаг после установки сантехники) этот документ Flask pattern при проверке формы может быть хорошим местом для начала.