无法让Flask WTF正确验证输入

时间:2018-04-15 15:41:29

标签: python validation flask flask-wtforms

我正在尝试让Flask检查我的输入是否是一个整数而我的form.validate_on_submit():函数不起作用 - 当我在字段中输入不是整数的东西并给我时,页面就会中断TypeError:'NoneType'对象不能解释为整数'

我的main.py代码如下:

from wtforms import IntegerField
from wtforms.validators import InputRequired
from perfect_numbers import classify, listInRange

num = 1

app = Flask(__name__)
app.config['SECRET_KEY'] = 'DontTellAnyone'

class PerfectForm(Form):
    inputNumber = IntegerField('input a number', validators=[InputRequired(message='Please input an integer')])

@app.route('/', methods=['GET', 'POST'])
def index():
    form = PerfectForm()
    Classify = classify(form.inputNumber.data)
    if form.validate_on_submit():
        num = request.form['inputNumber']
        return render_template('index.html', form=form, num=num, classify=Classify)
    return render_template('index.html', num=1, form=form, classify=Classify)

if __name__ == '__main__':
    app.run(debug=True)

1 个答案:

答案 0 :(得分:2)

因为您在实际填写并验证表单之前正在运行此行Classify = classify(form.inputNumber.data)。因此,在验证表单后将此行移至某处。