django orm 基本操作

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值