django models增、删、改、查

本文详细介绍了Django ORM的查询API,包括filter、all、get等方法的使用,以及如何进行排序、分组和获取计数。通过示例展示了如何筛选、修改和删除数据,同时提供了对查询结果进行转换和处理的各种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 查询相关API:

#  <1>filter(**kwargs):      它包含了与所给筛选条件相匹配的对象
条件选取querySet的时候,filter表示=。
			field名称__exact          # 精确等于 like 'aaa'
			__iexact         # 精确等于 忽略大小写 ilike 'aaa'
			__contains       # 包含 like '%aaa%'
			__icontains      # 包含 忽略大小写 ilike '%aaa%'
			__gt             # 大于
			__gte            # 大于等于
			__lt             # 小于
			__lte            # 小于等于
			__in             # 存在于一个list范围内
			__startswith     # 以...开头
			__istartswith    # 以...开头 忽略大小写
			__endswith       # 以...结尾
			__iendswith      # 以...结尾,忽略大小写
			__range          # 在...范围内
			ctime__range=(datetime.date(2022,5,1),datetime.date(2022,5,16))
			__year           # 日期字段的年份
			__month          # 日期字段的月份
			__day            # 日期字段的日
			__isnull=True/False

#  <2>all():                 查询所有结果

#  <3>get(**kwargs):         返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。

#-----------下面的方法都是对查询的结果再进行处理:比如 objects.filter.values()--------

#  <4>values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列 model的实例化对象,而是一个可迭代的字典序列
                                     
#  <5>exclude(**kwargs):     它包含了与所给筛选条件不匹配的对象

#  <6>order_by(*field):      对查询结果排序

#  <7>reverse():             对查询结果反向排序

#  <8>distinct():            从返回结果中剔除重复纪录

#  <9>values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列,添加参数flat = True,以列表形式显示结果。

#  <10>count():              返回数据库中匹配查询(QuerySet)的对象数量。

# <11>first():               返回第一条记录

# <12>last():                返回最后一条记录

#  <13>exists():             如果QuerySet包含数据,就返回True,否则返回False。

获取对象字段的值:

1.object.filed
2. getattr(object,field)

如果是一对多关联(举例):

Scorerecord.objects.filter(unit = Unit.objects.get(name=unit['name']))

models.Book.objects.filter(id=3).update(title="PHP")

Book.objects.filter(id=1).delete()

方式一:   Author.objects.create(**{"name":"alex"})    #推荐使用这种
  
方式二:     author=Author(name="alvin")
                    author.save()
  方式三
			 author=Author()
			 author.name="alvin"
			 author.save()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值