django-models操作

>>> w=test.objects.all()
>>> print(w)
, , , , ]>
>>> type(w)

可以看出来,获取到的是一个列表,属于queryset类型,下来获得username列的值,每一项的值为一个字典:

>>> w=test.objects.all().values('username')
>>> print(w)

.values_list(),获取到的值为一个元组:

>>> w=test.objects.all().values_list('username')
>>> print(w)

也可以传入多个参数:

>>> w=test.objects.all().values_list('username','depno')
>>> print(w),type(w)

(None, )

利用上下划线进行查找:

# 获取个数
    #
    # 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"

你可能感兴趣的:(django-models操作)