2017-11-25 97 views
2

而在瓶上使用PythonAnywhere.com執行詮釋,小數或日期在瓶和MySQLdb的類型不工作

MySQLdb的每當執行我得到一個非常奇怪的錯誤包含類型爲int,小數或日期時間列,執行會引發500錯誤。例如,從表中的工具,製造商和sub_type都是VARCHAR處理,所以這個代碼塊完美地工作:

reservation_id = request.forms.get("reservation_id") 
db = MySQLdb.connect("...") 
c = db.cursor() 
c.execute("""SELECT manufacturer, sub_type FROM Tool""") 
row = c.fetchone() 
return row 

但要求從同一表中tool_id,這是整數類型的,或任何其它列INT,從該表十進制或時間類型:

reservation_id = request.forms.get("reservation_id") 
db = MySQLdb.connect("...") 
c = db.cursor() 
c.execute("""SELECT tool_id FROM Tool""") 
row = c.fetchone() 
return row 

和瓶子拋出一個致命錯誤:

錯誤運行WSGI應用 關於SystemError:返回了一個錯誤的結果集

在MySQL bash中,每個查詢都可以完美工作。在execute()中放入相同的查詢(只有int,decimal或datetime),並且失敗。

有沒有人有過類似的經歷?

+1

如果您在問題中包含堆棧跟蹤和Bottle框架代碼,將會更容易提供幫助,但是由於我有預感,所以我會採取一定的措施。 –

回答

4

您是否將row作爲您的WSGI響應返回?如果是這樣,那就是問題所在。據the WSGI standard

When called by the server, the application object must return an iterable yielding zero or more strings.

爲了說明這一點,首先試試你的行轉換爲字符串,並確認沒有什麼幫助。例如,

... # your existing code 
return [str(col) for col in row] 
+0

你太棒了!這樣做了,謝謝!如果我們穿越路徑,我欠你一杯咖啡! –

相關問題