Übergeben Sie einfach Abfrageparameter als zweites Argument an execute
, wie:
>>> cur.execute(
... """INSERT INTO some_table (an_int, a_date, a_string)
... VALUES (%s, %s, %s);""",
... (10, datetime.date(2005, 11, 18), "O'Reilly"))
Dann werden alle Parameter korrekt maskiert.
Das liegt daran, dass psycopg2
folgt der Python Database API Specification v2.0
und unterstützt sichere parametrisierte Abfragen.
Siehe auch:
- Parametrisierte Abfragen mit psycopg2 / Python DB-API und PostgreSQL
- psycopg2-Äquivalent von mysqldb.escape_string?