Django原始sql格式tablename

时间:2016-08-10 18:57:57

标签: python django postgresql

我正在尝试将tablename插入到原始sql中,但它会插入格式错误的字符串,因此SQL查询失败。我无法找到一种正确的方法将字符串插入到SQL查询中:

from django.db import connection
cursor = connection.cursor()
cursor.execute("SELECT * from %s;", ['product'])

抛出:

django.db.utils.ProgrammingError: syntax error at or near "'product'"
LINE 1: SELECT * from 'product';

1 个答案:

答案 0 :(得分:5)

您不能将表名或列名作为参数参数传递。而是做类似的事情:

qry = "SELECT * from %s;" % 'product'
cursor.execute(qry)

同时注意SQL-injection攻击的可能性。