由于某些原因,我想对字符串值进行显式引用(成为构造 SQL 查询的一部分),而不是等待cursor.execute
方法对其第二个参数的内容执行隐式引用。
“隐式引用”是指:
value = "Unsafe string"
query = "SELECT * FROM some_table WHERE some_char_field = %s;"
cursor.execute( query, (value,) ) # value will be correctly quoted
我更喜欢这样的东西:
value = "Unsafe string"
query = "SELECT * FROM some_table WHERE some_char_field = %s;" % \
READY_TO_USE_QUOTING_FUNCTION(value)
cursor.execute( query ) # value will be correctly quoted, too
Python DB API 规范是否期望如此低的级别(我在PEP 249文档READY_TO_USE_QUOTING_FUNCTION
中找不到这样的功能)。如果没有,也许 Psycopg2 提供了这样的功能?如果没有,也许 Django 提供了这样的功能?我不想自己写这样的函数......