>>> w=test.objects.all()
>>> print(w)
<QuerySet [<test: test object>, <test: test object>, <test: test object>, <test: test object>, <test: test object>]>
>>> type(w)
<class 'django.db.models.query.QuerySet'>
可以看出来,获取到的是一个列表,属于queryset类型,下来获得username列的值,每一项的值为一个字典:
>>> w=test.objects.all().values('username')
>>> print(w)
<QuerySet [{'username': 'liujiangbu'}, {'username': 'liujianggg'}, {'username': 'liujianggg'}, {'username': 'liuji99angbu'}, {'username': 'liuji99angbu'}]>
.values_list(),获取到的值为一个元组:
>>> w=test.objects.all().values_list('username')
>>> print(w)
<QuerySet [('liujiangbu',), ('liujianggg',), ('liujianggg',), ('liuji99angbu',), ('liuji99angbu',)]>
也可以传入多个参数:
>>> w=test.objects.all().values_list('username','depno')
>>> print(w),type(w)
<QuerySet [('liujiangbu', '44444444444433333'), ('liujianggg', 'ttttttt'), ('liujianggg', 'ttttttt'), ('liuji99angbu', 'eddddeeeeee'), ('liuji99angbu', 'edddd
eeeeee')]>
(None, <class 'django.db.models.query.QuerySet'>)
利用上下划线进行查找:
# 获取个数
#
# models.Tb1.objects.filter(name='seven').count()
# 大于,小于
#
# models.Tb1.objects.filter(id__gt=1) # 获取id大于1的值
# models.Tb1.objects.filter(id__lt=10) # 获取id小于10的值
# models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值
# in
#
# models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
# models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in
# contains
#
# models.Tb1.objects.filter(name__contains="ven")
# models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感
# models.Tb1.objects.exclude(name__icontains="ven")
# range
#
# models.Tb1.objects.filter(id__range=[1, 2]) # 范围bettwen and
# 其他类似
#
# startswith,istartswith, endswith, iendswith,
# order by
#
# models.Tb1.objects.filter(name='seven').order_by('id') # asc 从小到大
# models.Tb1.objects.filter(name='seven').order_by('-id') # desc 从大到小
# limit 、offset
#
# models.Tb1.objects.all()[10:20]
# group by
from django.db.models import Count, Min, Max, Sum
# models.Tb1.objects.filter(c1=1).values('id').annotate(c=Count('num'))
# SELECT "app01_tb1"."id", COUNT("app01_tb1"."num") AS "c" FROM "app01_tb1" WHERE "app01_tb1"."c1" = 1 GROUP BY "app01_tb1"."id"
网友评论