我正在尝试在Flask中获取POST
数据:
@app.route('/getpersonbyid', methods = ['POST'])
def getPersonById():
personId = (int)(request.form['personId'])
print personId
我在RESTClient中通过personId
发送数据POST
。但我没有得到结果;我得到了400 Bad Request
错误。
我的代码中是否有错误?如果是这样,当请求数据通过POST
时,如何获取特定数据。
答案 0 :(得分:49)
您希望返回您的personId
值;将其打印到控制台对Web应用程序没有帮助:
@app.route('/getpersonbyid', methods = ['POST'])
def getPersonById():
personId = int(request.form['personId'])
return str(personId) # back to a string to produce a proper response
围绕int
的括号是无意义的噪音,顺便说一句,Python中不需要它们,在这种情况下,解析器会忽略它们。
我假设您正在使用视图中的personId
值执行有意义的操作;否则在值上使用int()
有点无意义。
您还可以使用MultiDict.get()
method为您转换价值:
personId = request.form.get('personId', type=int)
如果表单中不存在字段或无法将字段转换为整数,则personId
将设置为整数或 None
。