wtforms.IntegerField.data不是在post方法上传递给html模板,而是在get方法上传递给html模板。
在下面的代码中用StringField替换IntegerField确实将数据传递到html模板。我想念什么或做错什么?
class TestForm(FlaskForm):
number = IntegerField('Number')
@app.route('/', methods=['POST', 'GET'])
def home():
form = TestForm()
if request.method == 'GET':
form.number.data = 100
if request.method == 'POST':
form.number.data = 200
return render_template('number.html', form=form)
我一直面临着同样的问题。我发现一种解决方法是在模板中设置值。这当然不是最佳选择,但目前可以使用。
{% if form.number.data %}
{{ form.number(value=form.number.data) }}
{% else %}
{{ form.number() }}
{% endif %}