利用DJango框架中Models层的方法对数据库进行操作
根据条件对数据库中的数据做一系列筛选
filter()
这个函数会返回一个包含“满足()中的条件”的查询集。要注意的是()中的判断要用“=”判断,即fliter(a = “something”),不能用 “!=”判断。
具体用法代码DateBase.objects.filter(id = 1)
则返回了一个id字段为1 的查询集
exclude()
这个函数会返回一个不包含“满足()中的条件”的查询集。与filter相同,它的判断也只能用 “=”
具体用法代码DateBase.objects.exclude(id = 1)
则返回了一个id字段不为1的查询集
链式用法
当我们要查询的数据需要满足一系列很复杂的条件时,我们可以对数据库进行一系列的筛选
具体用法代码DateBase.objects.filter(name = "cat").exclude( color= "red")
则返回name字段是cat的但color字段不是red的一个查询集。
- 也可以这样使用
DateBase.objects.filter(name = "cat",id = 1).exclude( color= "red")
则返回name字段是cat且id字段是1,但color字段不是red的一个查询集。
- 对exclude也有同样用法。
ps:
不知道是否是笔者使用的框架版本的原因(我用的django是1.7的),在使用exclude方法时
DateBase.objects.exclude( color= "red",name = "cat")
这样无法返回我想要的那个查询集,所以我这样修改了代码达到了目的。
DateBase.objects.exclude( color= "red").exclude(name = "cat")
如果你也遇到了这样的情况,不妨试一下这样写你的代码