我正在尝试让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)
答案 0 :(得分:2)
因为您在实际填写并验证表单之前正在运行此行Classify = classify(form.inputNumber.data)
。因此,在验证表单后将此行移至某处。