ORM语法—查询操作

以下函数的使用,通过进入Python脚本(python manage.py shell)进行测试。

1.字段查询

(1)get()函数:返回表中满足条件的一条且只能有一条数据。

>>> from book.models import BookInfo
>>> book = BookInfo.objects.get(id=2)
>>> book.bname

(2)all()函数:返回模型类对应表格中的所有数据。

>>> from book.models import BookInfo
>>> books = BookInfo.objects.all()
>>> for book in books:
...    print(book.bname)   # 注:这里要缩进
...

    注意,这里print前要记得缩进。

(3)filter()函数:返回满足条件的数据。

模型类属性名__条件名 = 值   # 注:双下划线

#条件名:
<1> exact          # 精确定位
<2> contains       # 包含**
<3> endswith       # 以**结尾
<4> startswith     # 以**开头
<5> gt   gte       # 大于   大于等于
<6> lt   lte       # 小于   小于等于
......

 (4)exclude()函数:返回不满足条件的数据。

>>> from book.models import BookInfo
>>> books = BookInfo.objects.exclude(id=2)
>>> for book in books:
...    print(book.bname)
...

 (5)order_by()函数:对查询结果进行排序。

# 查询所有图书信息,并按照id 从小到大进行排序
BookInfo.objects.all().order_by('id')
# 查询所有图书信息,并按照id 从大到小进行排序
BookInfo.objects.all().order_by('-id')

2.F对象

   F对象主要用于类属性间的比较,使用前需要进行导入;

>>> from django.db.models import F
>>> # F(类属性名)
>>> books = BookInfo.objects.filter(bpage__gt=F("id")*10)

3.Q对象

   Q对象主要用于查询时条件之间的逻辑关系,使用前需导入;

>>> # 导入
>>> from django.db.models import Q
>>> # Q(属性名__条件名=值)
>>> books = BookInfo.objects.filter(Q(id__gt=2)&Q(bpage__gt=300))

4.聚合函数

   聚合函数是对查询结果进行聚合操作,聚合后返回值是一个字典类型的数据

#聚合函数有sum()、count()、avg()、max()、min(),需要调用aggregate()函数来聚合
>>> # 导入
>>> from book.models import BookInfo
>>> from django.db.models import Count
>>> BookInfo.objects.aggregate(Count("id"))

上一篇:【Zero Shot Detection】论文阅读笔记


下一篇:【kettle】【报错】 Unexpected problem reading shared objects from XML file 当读共享文件时发生错误