让psycopg2将参数化查询传递给PostgreSQL的最佳方法是什么?我不想编写自己的escaping机制或适配器,psycopg2源代码和示例在web浏览器中很难阅读.
如果我需要切换到PyGreSQL或其他python pg适配器之类的东西,我也可以.我只想要简单的参数化.
让psycopg2将参数化查询传递给PostgreSQL的最佳方法是什么?我不想编写自己的escaping机制或适配器,psycopg2源代码和示例在web浏览器中很难阅读.
如果我需要切换到PyGreSQL或其他python pg适配器之类的东西,我也可以.我只想要简单的参数化.
psycopg2
遵循DB-API 2.0的规则(见PEP-249).这意味着您可以从cursor
对象调用execute
方法,并使用pyformat
绑定样式,它将为您进行转义.例如,以下是安全(和工作):
cursor.execute("SELECT * FROM student WHERE last_name = %(lname)s",
{"lname": "Robert'); DROP TABLE students;--"})