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作为后端数据库时. ...
随机推荐
- PHP接口并发测试的方法
PHP接口并发测试的方法 <pre> header('Content-type:text/html; Charset=utf-8'); $uri = "输入你的url" ...
- 想让自己的项目6666,可是 Chrome 不答应!
读万卷书,行万里路!有的技能可以从书里学会,有的技能却需要在实战中打怪升级慢慢掌握,今天就来和大家聊一个很多小伙伴经常遇到的问题. 缘起 有人向松哥反映,在搭建微服务分布式配置中心 Spring Cl ...
- Nginx-Tomcat 等运维常用服务的日志分割-logrotate
目录 一 .Nginx-Tomcat 等常用服务日志分析 Nginx 日志 Tomcat日志 MongoDB 日志 Redis 日志 二 .日志切割服务 logrotate 三.日志切割示例 Ngin ...
- SpringBoot+Mybatis+Druid批量更新 multi-statement not allow异常
本文链接:https://blog.csdn.net/weixin_43947588/article/details/90109325 注:该文是本博主记录学习之用,没有太多详细的讲解,敬请谅解! ...
- NetCore HttpClient The SSL connection could not be established, see inner exception
之前遇到一个问题 https://www.cnblogs.com/leoxjy/p/10201046.html 在centos 7.x HttpClient访问会出问题 The SSL conne ...
- 排序算法Java代码实现(五)—— 快速排序
本篇内容: 快速排序 快速排序 算法思想: 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排 ...
- mysql 实现row_number功能
需求: 解答:由于mysql 中没有类似oracle中的 row_number功能,要实现row_number 可以使用如下功能: Select pkid,(@row_number:=@row_num ...
- 基于.NET平台常用的框架整理 转自 http://www.cnblogs.com/zhuyongblogs/p/5353751.html
常用的一些开源组件整理: 导出Excel报表的插件:NOPI.dll(基于微软OpenXml实现)开源的作业调度和自动任务框架:Quartz.NET用于大数据搜索引擎的全文检索框架:Lucene.ne ...
- BAT: Windows批处理更改当前工作路径
最近项目上需要获取文件夹下所有文件信息,因为文件夹是在server上,所以想用批处理bat来获取该路径下所有文件信息,然后通过任务计划管理去每天自动运行bat去更新文件信息内容. 获取文件夹下所有文件 ...
- Python——全国瓜子二手车数据分析
继瓜子二手车数据爬去之后,在此进行处理分析 Pycharm代码 # coding:utf8 # author:Jery # datetime:2019/5/3 17:35 # software:PyC ...