我们通常用django model 来进行一些数据查询的时候,对内部执行的sql语句流程是不了解的,这对我们做一些sql方面的优化造成了一些困扰。
其实django model对象内部就有一个能够查询当前执行的sql语句。
比如:
你需要调用文章类别:
antype = Articletype.objects.values('id').filter(parent__isnull=True).exclude(id=6)
上面是输出类别的id,条件是parent_id is Null 并且id
6
下面我们看下怎么用django 在控制台输出sql语句:
我们直接调用:
print antype.query
每个model对象都有一个query属性,输出当前执行的sql语句。
这样就行,输出结果:
SELECT `article_articletype`.`id` FROM `article_articletype` LEFT OUTER JOIN `article_articletype` T2 ON (`article_articletype`.`parent_id` = T2.`id`) WHERE (T2.`id` IS NULL AND NOT (`article_articletype`.`id` = 6 )) ORDER BY `article_articletype`.`rank` ASC, `article_articletype`.`id` DESC
上面的order字段信息我是在定义model的时候在class meta上就定义好了。
Copyright © 2008
继续阅读《django sql语句查询(不需要插件)》的全文内容...