使用django替换SQL语句中的变量

时间:2015-12-04 09:27:43

标签: django psql

使用原始sql查询时遇到问题,该查询具有像

这样的变量表名
cursor.execute("SELECT description FROM %s WHERE id = 1", [table_name])

%s替换双引号中的字符串,该字符串未正确执行。当我执行上述语句时,我得到了

  

" NameError:name' nike_tshirts'未定义"

1 个答案:

答案 0 :(得分:0)

您应该将表格名称放在引号'table_name' / "table_name"之间,或者在table_name = 'nike_tshirts'之前定义变量。

所以:

cursor.execute("SELECT description FROM %s WHERE id = 1", 'nike_tshirts')

table_name = 'nike_tshirts'
cursor.execute("SELECT description FROM %s WHERE id = 1", table_name)

应该可以正常工作。

Python引发了一个NameError,因为当你试图引用一个字符串时,它会认为你是指一个变量。