美文网首页
6.0 Django常用查询方法

6.0 Django常用查询方法

作者: 爱python爱生活 | 来源:发表于2018-12-26 23:47 被阅读8次
    def search_users(request):
        #查询的几种方法
        rs = User.objects.first() #查询第一个元素
        print(rs)
        rd = User.objects.last() #查询最后一个元素
        print(rd)
        rf = User.objects.exclude(name='Riven') #排除 name = Riven 的记录 Queryset 格式
        print(rf)
        re = User.objects.get(name='lingling') #获取一个记录对象,get 返回的对象具有唯一性质,如果符合条件的对象有多个,则get报错
        print(re)
        #对结果进行排序order_by:
        rr = User.objects.order_by('-age')# 逆向排序就是在条件的前面加一个负号
        print(rr)
        #多项排序
        ro = User.objects.order_by('age','id')
        print('多项排序的结果为:%s'%ro)
        #获取当前查询到数据的总数:
        rp = User.objects.count()
        print('查询数据总数为:%d'%rp)
        #将Queryset中的Model转化为字典:
        rw = User.objects.all().values()
        print('字典的内容为:%s'%rw)
    
        # 常用的查询条件
        ree = User.objects.filter(name__exact='gaohuiqi')
        print('exact相当于 = 查询结果是:%s'%ree) #name_iexact会忽略大小写
    
        res = User.objects.filter(name__iexact= 'gaohuiqi')
        print('iexact的查询结果会精确查询,结果是:%s'%res)
    
        red = User.objects.filter(name__icontains='Riven') #name_icontains会忽略大小写
        print('与icontains唯一的不同是忽略大小写!%s'%red)
    
        sta = User.objects.filter(name__istartswith='R')
        print('istartswith-startswith%s'%sta) #带i开头的都忽略大小写 同理 iendswith endswith以什么结尾输出
    
        #in 成员所属:
        rop = User.objects.filter(age__in = [16,19])
        print('in是查询出所属的区间:%s'%rop)
        #gt 大于:
        #gte 大于等于:
        #lt 小于;
        #lte  小于等于: age_lte = 20
        #range 区间 age_range = (18,20)
        #isnull 判断是否为空:
        rss = User.objects.filter(city__isnull= True)
        print('判断是否为空结果%s'%rss)
        return HttpResponse(' search successful!')
        #常见的字段映射关系:
            # int   IntegetField
            # varchar  charField
            # longtext  TextField
            # date     DateField
            # datetime     DateTimeField
        #Field 常用参数:
            # primary_key: 指定是否为主键。
            # unique: 指定是否唯一。
            # null: 指定是否为空,默认为False。
            # blank: 等于True时form表单验证时可以为空,默认为False。
            # default: 设置默认值。
            # DateField.auto_now: 每次修改都会将当前时间更新进去,只有调用Model.save()
            # 方法才会调用,QuerySet.update方法将不会调用。这个参数只是Date和DateTime以及Time类才有的。
            # DateField.auto_now_add: 第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值
    
    

    相关文章

      网友评论

          本文标题:6.0 Django常用查询方法

          本文链接:https://www.haomeiwen.com/subject/odnokqtx.html