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)
答案 0 :(得分:0)
我一直面临着同样的问题。我发现一种解决方法是在模板中设置值。这当然不是最佳选择,但目前可以使用。
{% if form.number.data %}
{{ form.number(value=form.number.data) }}
{% else %}
{{ form.number() }}
{% endif %}