模型类的查询

 

 

F对象用于同行数据的比较

Q对象用于表示一些逻辑关系,与或非等等 

 

复制manage.py创建一个新文件在里面修改main方法

#all(

if __name__ == '__main__':
    main()
    from user.models import *
    print('#'*50)
    user2 = User.objects.all()
    print('user2的类型是:',type(user2))
    for user in  user2:
        print(user)

#exclude()
if __name__ == '__main__':
    main()
    print('#' * 30)
    from user.models import *
    #返回条件不成立的数据
    user3 = User.objects.exclude(id=1)
    print('user2的类型是:', type(user3))

    print(user3)
    user = user3[0]
    print(user)
filter,以及模糊查询

 

if __name__ == '__main__':
    main()
    print('#' * 30)
    from user.models import *

    user3 = User.objects.filter(id=1)
    print('user2的类型是:', type(user3))

    print(user3)
    user = user3[0]
    print(user)
    # user3 = User.objects.filter(id=1)与下面的相等
    user4 = User.objects.filter(id__exact=1)
    print(user4)
    #模糊查询
    #包含
    user4_n = User.objects.filter(username__contains='1')
    #查询以'name1'开头的用户
    user4_ns = User.objects.filter(username__startwith='name1')
    #查询密码以1结尾的
    user4_ns = User.objects.filter(password__endswith='1')

    #范围查询
    user4_in =User.objects.filter(username__in=["name2","name3"])

    #查询在第一次创建后,发生修改的对象
    from django.db.models import F
    user_s = User.objects.filter(updateDatatime__gt=F('creatDatatime'))
    print(user_s)

    from django.db.models import  Q
    #查询年龄大于8岁的男性
    print(User.objects.filter(age=8, gender=0))#第一种
    print(User.objects.filter(Q(age=8) & Q(gender=8)))
    #查询年应大于8岁的男性,和年龄大于5岁的女性
    print(User.objects.filter(Q(age=8, gender=0)| Q(age=5, gender=1)))

#get

if __name__ == '__main__':
    main()
    print('#'*30)
    from user.models import *
    user1 = User.objects.get(id=1)
    print(user1)
    try:
        User.objects.get(id=1000)#没有这个对象
    except:
        print('没有满足条件的数据')
    try:
        User.objects.get(isdelete=0)#多个对象满足
    except:
        print('多个对象满足条件,抛出异常')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值