【Django】模型的基本操作(四)

添加:

objects.save()

objects.create(author="张三")

查询:

models.objects.all()  # 获取全部数据

models.objects.all().values('id')    #只取id列

models.objects.all().values_list('id','author')    #取出id和author列,并生成一个列表

models.objects.get(id=1)  #获取id, 这种方法如果id=1不存在,则会抛出 ObjectDoesNotExist异常

models.objects.filter(id=1) #获取id=1会产生一个新的QuerySet

models.objects.exclude(id=1) #返回一个不包含id=1的QuerySet

models.objects.annotate(Count('entry'))  # 使用提供的查询表达式Annotate 查询集中的每个对象

models.objects.filter(author="张三").order_by(id)  #对结果进行排序

models.objects.reverse()  #对结果进行反向排序排序

扫描二维码关注公众号,回复: 2495529 查看本文章

models.objects.filter(author="张三").order_by(id)[:5]  # 获取前5个数据,类似于top

models.objects.all()[:10:2]  # 这是查询从第0个开始到第10个,步长为2的数据。

models.objects.all().distinct()  # 去重

models.objects.filter(author__contains="张")  # like ‘%aaa%’ ,模糊查询,查找所有作者名包含“张”的数据

__exact 精确等于 like ‘aaa’ 
__iexact 精确等于 忽略大小写 ilike ‘aaa’ 
__icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。 
__gt 大于 
__gte 大于等于 
__lt 小于 
__lte 小于等于 
__in 存在于一个list范围内 
__startswith 以…开头 
__istartswith 以…开头 忽略大小写 
__endswith 以…结尾 
__iendswith 以…结尾,忽略大小写 
__range 在…范围内 
__year 日期字段的年份 
__month 日期字段的月份 
__day 日期字段的日 
__isnull=True/False 
__isnull=True 与 __exact=None的区别

删除:

model.objects.all().delete()

修改:

models.objects.filter(author='张三').update(author='520')

obj = models.objects.get(author='张三')

obj.author= '520'

obj.save()

猜你喜欢

转载自blog.csdn.net/qw943571775/article/details/81303466