Django运行SQL语句
1、Manager.raw(raw_query, params=None, translations=None)
这个方法接受一个原始的SQL查询,执行它,并返回一个django.db.models.query。RawQuerySet实例。这个RawQuerySet实例可以像普通的QuerySet一样遍历,以提供对象实例。
(1)字段匹配
(2)即使没有显示表明查询字段,也可以获取
(3)执行带参数SQL
字符串用%s占位符
字典用%(key)s占位符
(4)严禁使用字符串拼接
(5)参数不能用引号包裹
>>> query ="SELECT * FROM myapp_person WHERE last_name = '%s'"
2、通过connection.cursor()执行SQL
对象django.db.connection表示默认的数据库连接。要使用数据库连接,请调用connection.cursor()来获得一个游标对象。然后调用cursor.execute(sql, [params])方法以执行sql
cursor.fetchone()或cursor.fetchall()以返回结果行。
(1)传递百分比参数需要写两个百分号
cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' AND id = %s", [self.id])
(2)cursor执行不会返回列名
用字典或命名元组