执行诠释,小数或日期在瓶和MySQLdb的类型不工作

问题描述:

而在瓶上使用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框架代码,将会更容易提供帮助,但是由于我有预感,所以我会采取一定的措施。 –

您是否将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

你太棒了!这样做了,谢谢!如果我们穿越路径,我欠你一杯咖啡! –