Python MySQLdb 占位符语法

ens*_*are 3 python mysql pylons

我想使用占位符,如下例所示:

cursor.execute ("""
    UPDATE animal SET name = %s
    WHERE name = %s
    """, ("snake", "turtle"))
Run Code Online (Sandbox Code Playgroud)

除了我想让查询成为它自己的变量,因为我需要将查询插入到多个数据库中,如下所示:

query = """UPDATE animal SET name = %s
           WHERE name = %s
           """, ("snake", "turtle"))
cursor.execute(query)
cursor2.execute(query)
cursor3.execute(query)
Run Code Online (Sandbox Code Playgroud)

执行此类操作的正确语法是什么?

Amb*_*ber 5

query = """UPDATE animal SET name = %s
           WHERE name = %s
           """
values = ("snake", "turtle")

cursor.execute(query, values)
cursor2.execute(query, values)
Run Code Online (Sandbox Code Playgroud)

或者如果你想将它们组合在一起......

arglist = [query, values]
cursor.execute(*arglist)
cursor2.execute(*arglist)
Run Code Online (Sandbox Code Playgroud)

但第一种方式可能更具可读性。