zoukankan      html  css  js  c++  java
  • Django学习路12_objects 方法(all,filter,exclude,order by,values)

    Person.objects.all()
    获取全部数据
    
    def get_persons(request):
    
        persons = Person.objects.all()
        # 获取全部数据
    
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)


    使用 order_by  默认为 id 进行排序
    
    def get_persons(request):
    
        persons = Person.objects.all().order_by("p_age")
        # 获取全部数据
    
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)
    
    注:
    order_by(" 列名 ") 列名写在引号中


     

    使用 filter 对表中元素进行筛选
    符合条件的留下,  .filter(条件).filter(条件) 表示 两个条件都要满足
    
    def get_persons(request):
        persons = Person.objects.filter(p_age__gt=30)
        '''age 大于 30 的 '''
    
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)
    
    注:
    filter 将满足条件的保存下来
    gt 表示 大于 
    lt 表示小于

    使用两个 filter 表示 且
    
    def get_persons(request):
        persons = Person.objects.filter(p_age__gt=30).filter(p_age__lt=80)
        '''.filter .filter 表示且'''
        # persons = Person.objects.filter(p_age__gt=30)
        '''age 大于 30 的 '''
    
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)


     

    exclude 表示不包含的,在条件之外的数据
    
    def get_persons(request):
        persons = Person.objects.exclude(p_age__lt=30)
        '''age 大于 30 的'''
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)
    
    注:
    条件 在这里是 p_age__lt=30 即表示 小于 30


    Person.objects.exclude(条件).exclude(条件)
    表示 两个条件都不满足的数据
    
    def get_persons(request):
        persons = Person.objects.exclude(p_age__lt=30).exclude(p_age__gt=80)
        '''age 大于 30 的 , 小于 80 的,exclude 除了,不包含的意思 '''
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)

     

     


     

    values 
    获取 <QuerySet [{表中行元素},{表中行元素}, ....,{表中行元素}]>
    
    很类似于 json 数据
    
    def get_persons(request):
        persons = Person.objects.exclude(p_age__lt=30).exclude(p_age__gt=80)
        '''age 大于 30 的 , 小于 80 的,exclude 除了,不包含的意思 '''
        print(persons.values())
        context = {
            'persons':persons
        #     传递到前端代码中
        }
        return render(request,'person_list.html',context = context)
    
    注:
    只是添加了 persons.values() 
    获取到的数据为 
    
    <QuerySet [{'id': 2, 'p_name': 'Hany_ 1', 'p_age': 31, 'p_sex': True}, {'id': 5, 'p_name': 'Hany_ 4', 'p
    _age': 78, 'p_sex': False}, {'id': 7, 'p_name': 'Hany_ 6', 'p_age': 47, 'p_sex': True}, {'id': 12, 'p_na
    me': 'Hany_ 11', 'p_age': 77, 'p_sex': True}, {'id': 13, 'p_name': 'Hany_ 12', 'p_age': 48, 'p_sex': Fal
    se}]>

     


    2020-05-09

     

     

    如果觉得文章不错,可以分享给其他人哟~
  • 相关阅读:
    【NLP】UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 74752: ordinal not in rang
    【Android】Android学习过程中的一些网站
    【Java】第10章 内部类
    【Java】第7章 复用类
    【Linux】Ubuntu下安装QQ
    【Java】第9章 接口
    【Java】第8章 多态
    【Coding】用筛法求素数的C++实现(附100000以内素数表)
    【Android】挺好用的chart engine,可用于Android画饼图,条形图等
    【Coding】Visual Studio中最常用的13个快捷键
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12859187.html
Copyright © 2011-2022 走看看