MySqlDb是一个很棒的Python模块-但其中的一部分令人讨厌。查询参数如下所示
cursor.execute("select * from Books where isbn=%s", (isbn,))
而在已知宇宙中的其他任何地方(oracle,sqlserver,access,sybase …),它们看起来都像这样
cursor.execute("select * from Books where isbn=?", (isbn,))
这意味着,如果您想携带便携式设备,则必须以某种方式在两种表示法之间切换?和%s,这确实很烦人。(请不要告诉我使用ORM层-我会勒死您)。
大概您可以说服mysqldb使用标准语法,但是我还没有使其工作。有什么建议?
我发现那里有很多信息paramstyle,似乎暗示这可能是您想要的,但是根据此Wiki,您必须使用paramstyle您的库使用,并且其中大多数不允许您对其进行更改:
paramstyle
paramstyle特定于您使用的库,并且具有参考意义- 您必须使用它所使用的库。这可能是该标准中最令人讨厌的部分。(一些允许您设置不同paramstyles,但这不是标准行为)
paramstyles
我找到了一些有关MySQLdb允许这样做的帖子,但是显然它不是因为有人指出它不适用于他们。