Django查询mysql的数据

1.有多条结果的
     all()  获取所有的结果
     filter(条件)  按照条件筛选数据
     exclude(条件) 筛选出满足条件以外的数据
2.有单个结果的
     first() 获取结果集的第一个
     last()  获取结果集的最后一个
     get()  获取一个结果, 注意: 有且只有一个结果的时候使用get()才可以,如果结果超过一个或者没有,程序都出错
3.其他
     count() 获取结果集的数量
     order_by("-属性名") 表示按照属性名对应的值排序, 默认是升序,  -属性名表示降序排序
                  如果是字符类型的数据,是按照字符对应的码表来排序的,一个字符一个字符的的比较,如: "aac"  "abc"  ,"aac"小,
     exists() 判断查询结果集中是否有数据
     values() 获取结果集的数据,该数据是类似字典的形式,方便操作
4.条件中的运算符
       格式:  属性名__运算符=值     是2个下划线
       运算符:
        gt 大于
        gte 大于等于
        lt 小于
        lte 小于等于
        = 等于 exact
        不等于    exclude(条件)
            
        isNull 是空的数据 

        startwith 查询以某个字符开始 
        endwith  查询以某个字符结尾的
        contain 查询包含某个字符的

        istartwith   i 是ignore的简写, 忽略大小写查询
        iendwith
        icontain 

        in  成员运算符,  是否是集合中值的其中一个,满足一个就符合条件 
        特使用法**  pk=值  pk是主健的简写    

5.Q与F对象
       1.Q对象, 用来帮助实现 逻辑运算符
         & 且  如: ...filter(Q(p_age__gt=90)&Q(p_age__lt=95))  注意导包
          | 或  如:  ....filter(Q(p_name="三胖胖40") | Q(p_name="三胖胖61"))
          ~ 非  如: ....filter(~Q(p_age__lte=100))
       2.F 对象, 用来帮助自己的属性与自己的属性比较  
           如:
           # 需求:实现年龄比id小的数据
             persons = Person.objects.filter(p_age__lt=F("id"))
6.查询结果的切片 
        格式: 结果集[start:stop]  包前不包后   截取从start位置到stop位置的数据   
7.聚合函数的使用
       Max
       Min
       Avg
       Sum  
       注意: 1.大小写 2.注意到包
          如: 
           # 求年龄最大的
        # res = Person.objects.all().aggregate(Max("p_age"))
        res = Person.objects.all().aggregate(Min("p_age"))

猜你喜欢

转载自blog.csdn.net/pyrans/article/details/82668144
今日推荐