我的默认mysql paramstle是:'格式'
>>>MySQLdb.paramstyle
'format'
我想将默认的paramstyle更改为' pyformat' ,因为我可以查询类似" WHERE name =%(name)s"。 有没有办法做到这一点?
答案 0 :(得分:1)
我非常确定如果不在图书馆内部进行整理,这是不可能的...... - paramstyle
hardcoded符合PEP 249
另请注意escaping always uses a tuple
...
我想如果你替换了可以让它工作:
if args is not None:
query = query % tuple(( get_codec(a, self.encoders)(db, a) for a in args ))
有类似的东西:
if args is not None:
if isinstance(args, tuple):
args = tuple(get_codec(a, self.encoders)(db, a) for a in args)
elif isinstance(args, dict):
args = {k: get_codec(a, self.encoders)(db, a) for a in args}
query = query % args
这里你可能想在Cursor子类中这样做 - 你可以将它作为参数传递给连接...
最终,这有点像毛茸茸的"因为重写整个执行方法可能会迫使你使用一堆不在" public" API,但它至少应该是可能的。