django ORM CRUD
一.增加数据-Create
1.类名.objects.create(属性=值,属性=值)
Myomodel.objects.create(name="TeacherCang",age=)
2.d={"属性":"值"} obj=类名(**d) obj.save()
d={"name":"Money","age":}
obj=Myomodel(**d)
obj.save()
3.obj=类名() obj.属性=值 obj.save()
obj=Myomodel()
obj.name="Child"
obj.age=
obj.save()
二.删除数据-Delete
1.单个删除:类名.objects.get(属性=值).delete()
Myomodel.objects.get(id=).delete()
2.批量删除:类名.objects.filter(条件).delete()
Myomodel.objects.filter(age__lt=).delete()
三.修改数据-Update
1.单个修改:查 改 存
obj=Myomodel.objects.get(id=)
obj.name="xiugai"
obj.save()
2.批量修改:类名.objects.filter(条件).update(属性=值)
Myomodel.objects.filter(name="money").update(name="amaoagou")
四.查询数据-Retrieve
Myomodel.objects.all()#<QuerySet [<Myomodel: Myomodel object ()>]>Myomodel.objects.values()#<QuerySet [{'id': , 'name': 'xiugai', 'age': }]>Myomodel.objects.values('id','age')#<QuerySet [{'id': , 'age': }]>Myomodel.objects.values_list()#<QuerySet [(, 'xiugai', )]>Myomodel.objects.values_list('name')#<QuerySet [('xiugai',), ('Jerry',)]>Myomodel.objects.filter(name="amaoagou")#<QuerySet [<Myomodel: Myomodel object ()>]>
查询:过滤查询:类名.objects.filter(属性__查询谓词=值)#此处是双下划线
查询谓词:
1.exact 等值查询
2.contains 模糊查询,相当于like "%xx%"
3.in 模糊查询
4.gt 大于
5.lt 小于
6.gte 大于等于
7.lte 小于等于
8.startswith 以...开始,相当于like "x%"
9.endwith 以...结束,相当于like "%x"
10.range 相当于between and
11.regex 正则表达式匹配
Myomodel.objects.filter(name__startswith="Kai")#<QuerySet [<Myomodel: Myomodel object ()>]>Myomodel.objects.filter(name__contains="cher")#<QuerySet [<Myomodel: Myomodel object ()>]>
查询:条件取反:类名.objects.exclude(条件)
Myomodel.objects.exclude(name__contains="cher")#<QuerySet [<Myomodel: Myomodel object (1)>]>
查询:排序查询:类名.objects.order_by(条件)
默认是升序,字段名前加“-”即可降序排列
Myomodel.objects.order_by('age').values_list('age')
#<QuerySet [(,), (,), (,), (,), (,), (,), (,), (,), (,)]>Myomodel.objects.order_by('-age').values_list('age')
# < QuerySet[(,), (,), (,), (,), (,), (,), (,), (,), (,)] >Myomodel.objects.order_by('-age','-id').values_list('age','id')
#<QuerySet [(, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, )]>
只查询一条:类名.objects.get(条件)
Myomodel.objects.get(id=)#Myomodel object ()
获取查询数量
Myomodel.objects.filter(name="TeacherCang").count()#
聚合查询
from django.db.models import Avg,Sum,Count,Max,Min
.........................
Myomodel.objects.aggregate(age=Avg('age'))
Myomodel.objects.aggregate(age=Sum('age'))
Myomodel.objects.aggregate(age=Count('age'))
Myomodel.objects.aggregate(age=Max('age'))
Myomodel.objects.aggregate(age=Min('age'))
django ORM CRUD的更多相关文章
- django ORM的总结
1.django分表的方案: https://mp.weixin.qq.com/s?__biz=MjM5NjA3Nzk3Ng==&mid=2648154502&idx=1& ...
- django orm总结[转载]
django orm总结[转载] 转载地址: http://www.cnblogs.com/linjiqin/archive/2014/07/01/3817954.html 目录1.1.1 生成查询1 ...
- Django ORM - 001 - 外键表查询主表信息
开始用Django做web开发,我想大家都会遇到同样的问题,那就是如何高效快速的查询需要的数据,MVC都很简单,但是ORM折腾起来就有些费时间,我准备好好研究下Django ORM,所以会有一个系列的 ...
- Django ORM 中的批量操作
Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...
- Django ORM 查询管理器
Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...
- Django ORM模型的一点体会
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...
- 数据库表反向生成(二) Django ORM inspectdb
在前一篇我们说了,mybatis-generator反向生成代码. 这里我们开始说如何在django中反向生成mysql model代码. 我们在展示django ORM反向生成之前,我们先说一下怎么 ...
- Django ORM那些相关操作
一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/ 官网文档 常用的操作 <1> all() ...
- django orm 及常用参数
一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...
随机推荐
- java核心技术(第十版卷一)笔记(纯干货!)
这是我读过的第三本关于java基础的书.第一本<<java从入门到精通>>这本书让我灵识初开.第二本<<java敏捷开发>>这本书则是有一次被一位师傅批 ...
- Zookeeper原理图
- forever帮助node应用后台运行
windows系统下,运行node应用的时候,会有个命令窗存在,看着就碍眼,而且一不小心就关掉了,那有没有方法让node应用也可以运行在后台呢?方法也不止一种,我这里就选forever了,因为安装使用 ...
- Ext.Net GridPanel (属性|方法|配置|详细介绍)
1.Ext.NET ---- GridPanel 主要配置项: store:表格的数据集 columns:表格列模式的配置数组,可自动创建ColumnModel列模式 autoExpandColumn ...
- 详解XOR(异或)运算加密
逻辑运算之中,除了 AND 和 OR,还有一种 XOR 运算,中文称为"异或运算".它的定义是:两个值相同时,返回false,否则返回true.也就是说,XOR可以用来判断两个值是 ...
- 新的部署架构之下,如何拿shell?
和朋友聊起一个话题,服务器部署架构升级对安全的影响.从最简单的一台服务器,到应用.数据库.文件服务器分离:从本地机房服务器到云服务器产品矩阵:从虚拟化到容器化部署,一直在往更安全的方向改变. 本文试图 ...
- Kafka学习笔记3--Kafka的生产者和消费者配置
下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题及其生产.消费相关. server.properties--服务端配置 producer.properties--生产 ...
- java获取调用当前方法的方法名和行数
java获取调用当前方法的方法名和行数String className = Thread.currentThread().getStackTrace()[2].getClassName();//调用的 ...
- WPF 精修篇 长时间线程加取消功能
原文:WPF 精修篇 长时间线程加取消功能 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11*&qu ...
- mybatis源码/mybatis执行流程源码解析
https://www.cnblogs.com/cxiaocai/tag/%E9%9D%A2%E8%AF%95%E9%A2%98/public SqlSession session; public S ...