Просто предайте параметри на заявката като втори аргумент за execute
, като:
>>> cur.execute(
... """INSERT INTO some_table (an_int, a_date, a_string)
... VALUES (%s, %s, %s);""",
... (10, datetime.date(2005, 11, 18), "O'Reilly"))
Тогава всички параметри ще бъдат правилно екранирани.
Това е така, защото psycopg2
следва Python Database API Specification v2.0
и поддържа безопасни параметризирани заявки.
Вижте също:
- Параметризирани заявки с psycopg2 / Python DB-API и PostgreSQL
- psycopg2 еквивалент на mysqldb.escape_string?