一.增加数据-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的更多相关文章

  1. django ORM的总结

    1.django分表的方案:   https://mp.weixin.qq.com/s?__biz=MjM5NjA3Nzk3Ng==&mid=2648154502&idx=1& ...

  2. django orm总结[转载]

    django orm总结[转载] 转载地址: http://www.cnblogs.com/linjiqin/archive/2014/07/01/3817954.html 目录1.1.1 生成查询1 ...

  3. Django ORM - 001 - 外键表查询主表信息

    开始用Django做web开发,我想大家都会遇到同样的问题,那就是如何高效快速的查询需要的数据,MVC都很简单,但是ORM折腾起来就有些费时间,我准备好好研究下Django ORM,所以会有一个系列的 ...

  4. Django ORM 中的批量操作

    Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...

  5. Django ORM 查询管理器

    Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...

  6. Django ORM模型的一点体会

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...

  7. 数据库表反向生成(二) Django ORM inspectdb

    在前一篇我们说了,mybatis-generator反向生成代码. 这里我们开始说如何在django中反向生成mysql model代码. 我们在展示django ORM反向生成之前,我们先说一下怎么 ...

  8. Django ORM那些相关操作

    一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/         官网文档 常用的操作 <1> all() ...

  9. django orm 及常用参数

    一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...

随机推荐

  1. 【2019年07月22日】A股最便宜的股票

    查看更多A股最便宜的股票:androidinvest.com/CNValueTop/ 便宜指数 = PE + PB + 股息 + ROE,四因子等权,数值越大代表越低估. 本策略只是根据最新的数据来选 ...

  2. 【More Effective C++ 条款5】对定制的“类型转换函数”保持警觉

    1)C++允许内置数据类型之间进行隐式转换,比如char转int,int转double,对于内置数据类型的转换有详细的规则,但不管怎么样,这些都是语言提供的,相对安全,而且我们无法更改 对于自定义类的 ...

  3. Mysql插入text类型字段错误记录 com.mysql.jdbc.MysqlDataTruncation: Data truncation: #22001

    一次插入操作报如下错误 com.mysql.jdbc.MysqlDataTruncation: Data truncation: #22001 是说字段值长度超过限制. MySQL TEXT数据类型的 ...

  4. 《 .NET并发编程实战》阅读指南 - 第8章

    先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.

  5. winform子窗口与父窗口的交互-使用委托与事件

    实现子窗口与父窗口的交互,通过父窗口调用并控制子窗口,子窗口也能控制父窗口,使用委托和事件的方法,可以实现. 1.父窗口调用子窗口,并通过子窗口控制父窗口 新建工程,创建两个窗体    显示子窗体的代 ...

  6. .Net Core 3.0 WebAPI && MySQL 8.0搭建详情

    微软在2019年9月24日发布了dotNet Core 3.0和C# 8.0,添加了许多新Features,详情点我.无疑dotNet Core 3.0和一个月之后即将发布的dotNet Core 3 ...

  7. C# HttpWebRequest和WebClient的区别 通过WebClient/HttpWebRequest实现http的post/get方法

    一 HttpWebReques1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Create();2,其Method指定了请求类型,这里用的GET,还 ...

  8. 在VB编程中,若一行代码太长需要换行时,行尾要加什么符号

    & _ 注意,&与_之间一定要有一个空格 例如: aa="select " & _     "  a,b,c" & _      ...

  9. 2 java并行基础

    我们认真研究如何才能构建一个正确.健壮并且高效的并行系统. 进程与线程 进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 ...

  10. django 开发Broken pipe from ('127.0.0.1', 58078)问题解决

    最近写的一个项目,前端使用了表单submit提交,后端接收POST数据存储.实际上的逻辑并不复杂, django接收到的时候会产生Broken pipe from ('127.0.0.1', 5807 ...