可以使用asyncpg模块中的named(命名)占位符来构造带参数的SET字符串,示例代码如下:
import asyncpg
# 创建连接池
async def create_pool():
pool = await asyncpg.create_pool(user='user', password='password',
database='database', host='localhost')
return pool
# 准备SQL语句和参数
sql = "UPDATE users SET name = $new_name, age = $new_age WHERE id = $id"
params = {'new_name': 'Lucy', 'new_age': 25, 'id': 1}
# 执行SQL语句
async with pool.acquire() as conn:
async with conn.transaction():
await conn.execute(sql, **params)
在SQL语句中使用$
符号加上参数名称,然后在execute
方法中传递一个以参数名为键的字典作为命名参数。这样,参数就会被自动地转义和引用,以保证SQL注入的安全性。