qq_道可道
已于 2022-07-20 13:34:49 修改
526
收藏
分类专栏: django 文章标签: python
版权
django
专栏收录该内容
10 篇文章1 订阅
订阅专栏
django orm 基本操作
django官网查询集
QuerySet对象转换成字典对象
ORM大于等于小于符号
ORM常用操作
ORM双下划线操作
ORM日期操作
model案例
ORM外键ForeignKey查询
ORM外键ForeignKey新增
ORM多对多ManyToManyField查询一(优先)
ORM多对多ManyToManyField查询二(较少)
ORM多对多ManyToManyField增/改/删
复杂查询
竞争条件(race condition)
多字段查询过滤器Q
过滤+排除案例(通过传递同时使用filter+exclude)
字段查询比较器F
聚合查询
分组查询
django官网查询集
QuerySet对象转换成字典对象
from django.forms.models import model_to_dict
u = User.objects.get(id=1)
u_dict = model_to_dict(u)
type(u_dict)
1
2
3
4
ORM大于等于小于符号
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
ORM常用操作
# 获取数据,不存在则创建,返回元组,若创建成功则第二个字段返回True(<Zzdtest 1>, False)
az_dict = {"az_name": zone_name}
AZ.objects.get_or_create(**az_dict)
# 查询所有结果
music = Music.objects.all()
print('music:', music)
# 过滤条件,可以在后面接 .count() 统计过滤的数据
fi = Music.objects.filter(music_name='忘不了')
print('filter: ',fi)
# 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
ge = Music.objects.get(music_name='忘不了')
print('get: ',ge)
# 筛选条件不匹配的对象
ex = Music.objects.exclude(music_name='忘不了')
print('exclude: ', ex)
# 返回可迭代的字典序列
va = Music.objects.values()
print('values: ', va)
# 返回的是一个元组序列
vals = Music.objects.values_list()
print('values_list: ', vals)
# 对查询结果排序
order = Music.objects.order_by()
print('order: ', order)
# 对查询结果反向排序
reverse = Music.objects.reverse()
print('reverse', reverse)
# 返回数据库中匹配查询(QuerySet)的对象数量
count = Music.objects.count()
print('count:', count)
# 返回第一条记录
first = Music.objects.first()
print('first: ',first)
# 返回最后一条记录
last = Music.objects.last()
print('last: ',last)
# 如果QuerySet包含数据,就返回True,否则返回False
exi = Music.objects.exists()
print('exists: ',exi)
distinct = Music.objects.distinct()
print('distinct: ', distinct)
# 删除数据
Music.objects.first(name='zhangsan').delete()
# 更新数据
Music.objects.first(name='zhangsan').update(age=18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
ORM双下划线操作
# 获取id大于4 且 小于6的值
ltgt = Music.objects.filter(id__lt=6, id__gt=4)
print('ltgt: ', ltgt)
# 获取id等于3、6的数据
ideq = Music.objects.filter(id__in=[3,6])
print('ideq: ', ideq)
# 获取id不等于3、6的数据
notin = Music.objects.exclude(id__in=[3, 6])
print('notin: ', notin)
# 获取mu