【django】基础条件查询(一)(已更新)

导读:本篇文章讲解 【django】基础条件查询(一)(已更新),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一. 基本查询

FilmInfo.objects.get(fid=1)
<FilmInfo: django>

特别注意1:get查询单⼀结果,如果不存在会抛出模型类.DoesNotExist异常。

FilmInfo.objects.get(fid=20)
film.models.FilmInfo.DoesNotExist: FilmInfo matching query does not exist.

特别注意2:get查询单⼀结果,如果存在多条结果,会报错

film.models.FilmInfo.MultipleObjectsReturned: get() returned more than one FilmInfo -- it returned 2!

特别注意3:如果使用指定条件查询的记录为1,会返回这条记录对应的模型实例对象,可以使用模型对象.字段名去获取响应的字段值

all查询多个结果。

FilmInfo.objects.all()
<QuerySet [<FilmInfo: django>, <FilmInfo: 金刚狼>, <FilmInfo: 夺冠>, <FilmInfo: 我和我的家人>, <FilmInfo: shell>, <FilmInfo: 我爱你中国>, <FilmInfo: 我爱你china>]>

count查询结果数量。

FilmInfo.objects.count()
7

二. 过滤查询

实现SQL中的where功能,包括
1、filter过滤出多个结果
2、exclude排除掉符合条件剩下的结果
3、get过滤单⼀结果 对于过滤条件的使⽤,上述三个⽅法相同,故仅以filter进⾏讲解。
过滤条件的表达语法如下:
属性名称__⽐较运算符=值
属性名称和⽐较运算符间使⽤两个下划线,所以属性名不能包括多个下划线
案例:
4、查询编号为1的影片
exact:表示等于。

FilmInfo.objects.filter(fid__exact=1)
<QuerySet [<FilmInfo: django>]>
FilmInfo.objects.filter(fid=1)
<QuerySet [<FilmInfo: django>]>

5、查询影⽚名包含’我’的影⽚

FilmInfo.objects.filter(fname__contains='我')
<QuerySet [<FilmInfo: 我和我的家人>, <FilmInfo: 我爱你中国>, <FilmInfo: 我爱你china>]>

6、查询影⽚以’冠’结尾的影⽚
startswith、endswith:以指定值开头或结尾;以上运算符都区分⼤⼩写;
在这些运算符前加上i表示不区分⼤⼩写,如iexact、icontains、istartswith、iendswith.

FilmInfo.objects.filter(fname__endswith='冠')
<QuerySet [<FilmInfo: 夺冠>]>

isnull:是否为null
7、查询影⽚为空的影⽚

FilmInfo.objects.filter(fname__isnull=True)
<QuerySet []>

8、查询影⽚编号为1或3或5的影⽚

in:是否包含在范围内

FilmInfo.objects.filter(fid__in=[1,3,5])
<QuerySet [<FilmInfo: django>, <FilmInfo: 夺冠>, <FilmInfo: shell>]>

9、查询影⽚编号⼤于3的影⽚
gt⼤于 (greater then)
gte⼤于等于 (greater then equal)
lt⼩于 (less then)
lte⼩于等于 (less then equal)

FilmInfo.objects.filter(fid__gt=3)
<QuerySet [<FilmInfo: 我和我的家人>, <FilmInfo: shell>, <FilmInfo: 我爱你中国>, <FilmInfo: 我爱你china>]>

10、查询2020年发表的影⽚
year、month、day、week_day、hour、minute、second:对⽇期时间类型的属性进⾏运算。

FilmInfo.objects.filter(pub_date__year=2020)
<QuerySet [<FilmInfo: 金刚狼>, <FilmInfo: 我和我的家人>]>

11、查询2019年1⽉1⽇后发表的影⽚

FilmInfo.objects.filter(pub_date__gt='2019-1-1')
<QuerySet [<FilmInfo: 金刚狼>, <FilmInfo: 夺冠>, <FilmInfo: 我和我的家人>, <FilmInfo: 我爱你中国>, <FilmInfo: 我爱你china>]>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74272.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!