HTTP表单数据是一个字符串,Flask不会收到有关客户端将每个值指定为哪种类型的任何信息。因此,它将所有值解析为字符串。
您可以调用
int(request.form['personId'])以获取ID作为一个整数。如果该值不是int,则
ValueError在日志中将得到一个,并且Flask将返回500响应。如果表单没有
personId键,Flask将返回400错误。
personId = int(request.form['personId'])
相反,您可以使用
MultiDict.get()方法并传递
type=int以获取值(如果它存在且为int):
personId = request.form.get('personId', type=int)现在
personId将被设置为整数, 或者
None如果该字段不以表单形式存在或无法转换为整数。
您的示例路线也存在一些问题。
路线应该有
return东西,否则会引发500错误。
@app.route('/getpersonbyid', methods = ['POST'])def getPersonById(): personId = int(request.form['personId']) return str(personId) # back to a string to produce a proper responseintPython中不需要括号,在这种情况下解析器将忽略括号。我假设您正在使用
personId视图中的值做有意义的事情;否则,使用
int()该值将毫无意义。



