2012-09-23 37 views
39

我试图让烧瓶演员瓶形式值为int

@app.route('/getpersonbyid', methods = ['POST']) 
    def getPersonById(): 
     personId = (int)(request.form['personId']) 
     print personId 

后的数据,我在RESTClient实现通过POST发送数据“PERSONID”。但我没有得到结果;相反,我得到一个400错误的请求错误。

我的代码中有错误吗?如果是这样,当请求数据通过POST时,如何获得特定数据。

+1

有没有必要围绕'int'类型放置括号; python不会做转换。 :-) –

+0

由于“没有得到结果”,你的意思是你得到一个错误? –

+0

我收到一个错误错误的请求 –

回答

45

您要返回您的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如果字段不存在于窗体或不能转换为整数。

+0

我删除了'int'现在它的工作。谢谢! –

+0

@Amritha:对,在这种情况下,您的'personId'值根本不是int;你的日志会告诉你这个错误(类似于'ValueError')。 –

+0

是的,那是错误 –