Basta passar os parâmetros de consulta como um segundo argumento para
execute
, Curti:>>> cur.execute(
... """INSERT INTO some_table (an_int, a_date, a_string)
... VALUES (%s, %s, %s);""",
... (10, datetime.date(2005, 11, 18), "O'Reilly"))
Então, todos os parâmetros serão escapados corretamente.
Isso ocorre porque
psycopg2
segue a Python Database API Specification v2.0
e suporta consultas parametrizadas seguras. Veja também:
- Consultas parametrizadas com psycopg2 / Python DB-API e PostgreSQL
- psycopg2 equivalente a mysqldb.escape_string?