# 必知必会13条 # 1.all() 查询所有数据 # 2.filter() 带有过滤条件的查询 # 3.get() 直接拿数据对象 但是条件不存在直接报错 # 4.first() 拿queryset里面第一个元素 # res = models.User.objects.all().first() # print(res) # 5.last() # res = models.User.objects.all().last() # print(res) # 6.values() 可以指定获取的数据字段 select name,age from ... 列表套字典 # res = models.User.objects.values('name','age') # <QuerySet [{'name': 'jason', 'age': 18}, {'name': 'egonPPP', 'age': 84}]> # print(res) # 7.values_list() 列表套元祖 # res = models.User.objects.values_list('name','age') # <QuerySet [('jason', 18), ('egonPPP', 84)]> # print(res) # """ # # 查看内部封装的sql语句 # 上述查看sql语句的方式 只能用于queryset对象 # 只有queryset对象才能够点击query查看内部的sql语句 # # """ # 8.distinct() 去重 # res = models.User.objects.values('name','age').distinct() # print(res) """ 去重一定要是一模一样的数据 如果带有主键那么肯定不一样 你在往后的查询中一定不要忽略主键 """ # 9.order_by() # res = models.User.objects.order_by('age') # 默认升序 # res = models.User.objects.order_by('-age') # 降序 # # print(res) # 10.reverse() 反转的前提是 数据已经排过序了 order_by() # res = models.User.objects.all() # res1 = models.User.objects.order_by('age').reverse() # print(res,res1) # 11.count() 统计当前数据的个数 # res = models.User.objects.count() # print(res) # 12.exclude() 排除在外 # res = models.User.objects.exclude(name='jason') # print(res) # 13.exists() 基本用不到因为数据本身就自带布尔值 返回的是布尔值 # res = models.User.objects.filter(pk=10).exists() # print(res)