demols查询

https://www.cnblogs.com/wxj1129549016/p/9858405.html

 

1.all(): 查询所有结果
all: models.表名.objects.all()
book_all=models.Book.objects.all() # 结果是querySet集合 [model对象,....]
print(book_all) # <QuerySet [<Book: Book object>, <Book: Book object>, <Book: Book object>]>

2.filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
filter: models.表名.objects.filter() # 结果是querySet集合 [model对象,....]
ret1=models.Book.objects.filter(author="yuan") # # <QuerySet [<Book: 追风筝的人>, <Book: asd>]>
ret2=models.Book.objects.filter(nid=1) # <QuerySet [<Book: yuan>]>
filter多条件逗号分隔
ret2=models.Book.objects.filter(author="yuan",price=123) # <QuerySet [<Book: yuan>]>
print(ret2)

3.get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
get models.表名.objects.get() # model对象,必须是一个,没有报错,多了报错
ret3=models.Book.objects.get(author="yuan")
print(ret3.price)

5.exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
exclude : 排除条件
ret4=models.Book.objects.exclude(author="yuan")
print(ret4)

4.values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列,model的实例化对象,而是一个可迭代的字典序列
values方法
ret=models.Book.objects.filter(author="yuan").values("title","price")
print(ret)# <QuerySet [{'title': '追风筝的人', 'price': Decimal('99.00')}, {'title': 'asd', 'price': Decimal('123.00')}]>

9.values_list(*field): 它与values(),非常相似,它返回的是一个元组序列,values返回的是一个字典序列
ret = models.Book.objects.filter(author="yuan").values_list("title", "price")
print(ret) # <QuerySet [('追风筝的人', Decimal('99.00')), ('asd', Decimal('123.00'))]>

6.order_by(*field): 对查询结果排序
7.reverse(): 对查询结果反向排序

8.distinct(): 从返回结果中剔除重复纪录
ret=models.Book.objects.filter(author="yuan").values("author").distinct()
print(ret)

10.count(): 返回数据库中匹配查询(QuerySet)的对象数量。
count计数方法
ret=models.Book.objects.filter(author="yuan").count()
print(ret)

11.first(): 返回第一条记录
ret = models.Book.objects.all().first()
print(ret)

12.last(): 返回最后一条记录

13.exists(): 如果QuerySet包含数据,就返回True,否则返回False
exists方法,是否存在数据,只会查询一条,效率高
if models.Book.objects.all().exists():
print("exists")
else:
print("nothing")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值