psycopg2
sigue las reglas para DB-API 2.0 (establecidas en PEP-249). Eso significa que puede llamar a execute
método de su cursor
objeto y use el pyformat
estilo vinculante, y hará el escape por usted. Por ejemplo, lo siguiente debería estar seguro (y trabajar):
cursor.execute("SELECT * FROM student WHERE last_name = %(lname)s",
{"lname": "Robert'); DROP TABLE students;--"})