2012-09-23 25 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

是的,那是錯誤 –