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

 

 

Django学习路12_objects 方法(all,filter,exclude,order by,values)的更多相关文章

  1. Django学习路32_创建管理员及内容补充+前面内容复习

    创建管理员 python manage.py createsuperuser   数据库属性命名限制 1.不能是python的保留关键字 2.不允许使用连续的下划线,这是由django的查询方式决定的 ...

  2. Django学习路21_views函数中定义字典及html中使用类实例对象的属性及方法

    创建 app6 在项目的 settings 中进行注册 INSTALLED_APPS 里面添加 'app6.apps.App6Config' 在 app6 的models.py 中创建数据表 clas ...

  3. Django学习路35_视图使用方法(复制的代码) + 简单总结

    from django.shortcuts import render,redirect from django.http import HttpResponse,JsonResponse from ...

  4. Django学习路11_向数据库中添加 和 获取指定条件数据

    在 views.py 中添加函数 向数据库中添加数据 def add_persons(request): for i in range(15): person = Person() flag = ra ...

  5. Django学习路34_models 文件创建数据表

    from django.db import models # Create your models here. class BookInfoManager(models.Manager): '''图书 ...

  6. Django学习路18_F对象和Q对象

    F 对象: 可以使用模型的 A 属性和 B 属性进行比较 写法: 需要的数据对象 = 数据表(类名).objects.filter(列名__条件=F('列名2')) 需求: 查看男生数量比女生少 的公 ...

  7. Django学习之raw()方法查询数据

    我们经常有这种需求: 用sql来查询以及写入数据到数据库,Django当然也提供了这种方式,那就是通过raw方法: sql = "select * from blog_blog where ...

  8. Django学习路19_is_delete属性,重写类方法,显性隐性属性

    如果在 创建数据表时,使用了 objects = models.Model() 使隐形属性变为了 显性属性 则 必须要自己定义一个 继承了 models.Model 类的类,实现 管理功能 如果一个属 ...

  9. Django学习路17_聚合函数(Avg平均值,Count数量,Max最大,Min最小,Sum求和)基本使用

    使用方法: 类名.objects.aggregate(聚合函数名('表的列名')) 聚合函数名: Avg 平均值 Count数量 Max 最大 Min 最小 Sum 求和 示例: Student.ob ...

随机推荐

  1. 前端丨如何使用 tcb-js-sdk 实现图片上传功能

    前言 tcb-js-sdk 让开发者可以在网页端使用 JavaScript 代码服务访问云开发的服务,以轻松构建自己的公众号页面或者独立的网站等 Web 服务.本文将以实现图片上传功能为例,介绍 tc ...

  2. 移动端Retina屏boder 1px显示为2px或3px的解决方法

    我们在开发移动端web项目时经常遇到设置border:1px,但是显示的边框却为2px或是3px粗细,这是因为设备像素比devicePixelRatio为2或3引起的. 何为“设备像素比deviceP ...

  3. 记一道CTF隐写题解答过程

      0x00 前言 由于我是这几天才开始接触隐写这种东西,所以作为新手我想记录一下刚刚所学.这道CTF所需的知识点包括了图片的内容隐藏,mp3隐写,base64解密,当铺解密,可能用到的工具包括bin ...

  4. .NET程序运行原理及基本概念详解

    一.引言 我们知道在Java中有虚拟机,代码运行时虚拟机把Java语言编译成与机器无关的字节码,然后再把字节码编译成机器指令执行,那么在.NET中程序是如何运行的呢?其实运行原理是一样的,.NET中的 ...

  5. 521我发誓读完本文,再也不会担心Spring配置类问题了

    当大潮退去,才知道谁在裸泳.关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis.中 ...

  6. celery 基础教程(四):定时任务

    简介 celery beat 是一个调度器:它以常规的时间间隔开启任务,任务将会在集群中的可用节点上运行. 默认情况下,入口项是从 beat_schedule 设置中获取,但是自定义的存储也可以使用, ...

  7. Quartz.Net系列(十二):六大Calendar(Annual、Cron、Daily、Holiday、Monthly、Weekly)

    Quartz.Net中为了动态排除一些时间,而使用Calendar可以做到 1.DailyCalendar 可以动态的排除一天中的某些时间段 示例:在一天当中的13:00到14:00不要执行 publ ...

  8. 大牛聊Java并发编程原理之 线程的互斥与协作机制

    可能在synchronized关键字的实现原理中,你已经知道了它的底层是使用Monitor的相关指令来实现的,但是还不清楚Monitor的具体细节.本文将让你彻底Monitor的底层实现原理. 管程 ...

  9. vue 集成html5 plus

    首先要安装一个包 vue-html5plus npm i vue-html5plus -S 然后配置这个文件 在main.js添加一串代码 var onPlusReady = function (ca ...

  10. 开源|如何开发一个高性能的redis cluster proxy?

    文|曹佳俊 网易智慧企业资深服务端开发工程师 背    景 redis cluster简介 Redis cluster是redis官方提供集群方案,设计上采用非中心化的架构,节点之间通过gossip协 ...