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

 

 

posted @ 2020-05-09 18:42  CodeYaSuo  阅读(1810)  评论(0编辑  收藏  举报