Django运行SQL语句

1、Manager.raw(raw_queryparams=Nonetranslations=None)

 

Django运行SQL语句

这个方法接受一个原始的SQL查询,执行它,并返回一个django.db.models.query。RawQuerySet实例。这个RawQuerySet实例可以像普通的QuerySet一样遍历,以提供对象实例。

(1)字段匹配

 

Django运行SQL语句

(2)即使没有显示表明查询字段,也可以获取

 

Django运行SQL语句

(3)执行带参数SQL

字符串用%s占位符

字典用%(key)s占位符

 

Django运行SQL语句

(4)严禁使用字符串拼接

 

Django运行SQL语句

(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()以返回结果行。

 

Django运行SQL语句

(1)传递百分比参数需要写两个百分号

cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' AND id = %s", [self.id])

(2)cursor执行不会返回列名

用字典或命名元组

 

Django运行SQL语句