Passez simplement les paramètres de requête comme deuxième argument à execute
, comme :
>>> cur.execute(
... """INSERT INTO some_table (an_int, a_date, a_string)
... VALUES (%s, %s, %s);""",
... (10, datetime.date(2005, 11, 18), "O'Reilly"))
Ensuite, tous les paramètres seront correctement échappés.
C'est parce que psycopg2
suit Python Database API Specification v2.0
et prend en charge les requêtes paramétrées sécurisées.
Voir aussi :
- Requêtes paramétrées avec psycopg2 / Python DB-API et PostgreSQL
- l'équivalent psycopg2 de mysqldb.escape_string ?