Django(2)

23、ORM映射

 UserInfo.objects.get(id=2)       

Django命令 — orm映射—-源代码 所以Django开发效率虽然比源代码高,但是不如源代码稳定,快速


    select * from user_userinfo where id=2

24、修改管理器

 from django.db import models

25、模糊查询filter,exclude(过滤器)

  obj1 = UserInfo.objects.filter(user_name__contains='王')
        #得到user_name中有王的对象列表
    obj2 = UserInfo.objects.filter(user_name__endswith='王')
        #得到user_name中以王结尾的对象列表
    obj3 = UserInfo.objects.filter(id__gte=5)
       # 得到id>=5的对象列表    gt:>  gte:>=   lt :<
    obj4 = UserInfo.objects.get(id=5)
        #id=5的对象
    obj5 = UserInfo.objects.filter(id__exact=5)
         #id=5的对象
    obj6 = UserInfo.objects.filter(id__in=[1,3,5])
        id 为135的对象组
    obj7 = UserInfo.objects.exclude(id=3)
        除了id=3的对象组
    obj8 = UserInfo.objects.filter(password='123456',id__gt=2).exclude(phone=188)
        密码为123456 id >=2 并且phone不等于188
    obj = UserInfo.objects.filter(Q(password='123456') & Q(id__gt=2) & ~Q(phone=188))
        Q是寻找字段的函数语句  ~表示求反 
         密码为123456 id >=2 并且phone不等于188
    # obj = UserInfo.objects.aggregate(Sum('id'))
        aggregate 返回一个键值对的字典类型。。  使用了聚合函数求id的和
    # obj = UserInfo.objects.aggregate(Max('id'))
                    求id的最大值

    # print(UserInfo.objects.count())
                输出对象的数量

    obj = UserInfo.objects.filter(id__gt=F('phone'))
         F 是字段之间的比较  id>phone的输出 。得到一个对象组
    context ={'obj':obj}
    以键值结构构成,为了向前端传送数据,前端用'obj'接受
    return  render(request,'search_user.html',context=context)
    返回请求,前端文件,和传递的数据

obj = UserInfo.objects.all()[1:3] 左闭右开,表示的是类似切片


person = UserInfo.objects.get(id=1)
查询id=1的对象
obj = person.useraddress_set.all()
查到id=1的全部地址

猜你喜欢

转载自blog.csdn.net/qq_31844775/article/details/82594998