Simplemente pase los parámetros de consulta como segundo argumento para execute
, como:
>>> cur.execute(
... """INSERT INTO some_table (an_int, a_date, a_string)
... VALUES (%s, %s, %s);""",
... (10, datetime.date(2005, 11, 18), "O'Reilly"))
Entonces, todos los parámetros se escaparán correctamente.
Esto se debe a que psycopg2
sigue la Especificación de API de base de datos de Python v2.0
y admite consultas parametrizadas seguras.
Ver también:
- Consultas parametrizadas con psycopg2 /Python DB-API y PostgreSQL
- psycopg2 equivalente de mysqldb.escape_string?