新增操作:
方式1:
book = BookInfo(title='西游记',price=99)
book.save()

方式2:
BookInfo.objects.create(title='西游记',price=99)

方式3:
BookInfo.objects.bulk_create(bookinfoList)

修改操作:
方式1:
book = BookInfo.objects.get(id=1)
book.name='西游记'
book.save()

方式2:
BookInfo.objects.filter(name='西游记').update(name='三国演义')

删除操作:
方式1:
BookInfo.objects.get(id=1).delete()

方式2:
BookInfo.objects.filter(id=1).delete()

查询操作:
BookInfo.objects.all()查询所有结果 QuerySet
BookInfo.objects.count()查询该表数据量

过滤查询
book = BookInfo.objects.get(id=1)查询id为1的一条数据 book--QuerySet book.title
BookInfo.objects.filter(title__exact='西游记') 简写为(title='西游记')
BookInfo.objects.filter(title__contains='游')
BookInfo.objects.filter(title__startswith/endswith = '西') 以指定值开头或结尾
以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact、icontains、istartswith、iendswith

BookInfo.objects.filter(title__isnull=False)
BookInfo.objects.filter(id__in=[1,2,4])

BookInfo.objects.filter(id__gt=3)
gt :大于 (greater then)
gte :大于等于 (greater then equal)
lt :小于 (less then)
lte :小于等于 (less then equal)

BookInfo.objects.exclude(id=3)

year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算
BookInfo.objects.filter(pub_data__year=1993)
BookInfo.objects.filter(pub_data__gt=date(1990,1,1))

查询阅读量大于等于2倍评论量的图书
BookInfo.objects.filter(read_gte=F('comment')*2)

查询阅读量大于20,并且编号小于3的图书
BookInfo.objects.filter(read_gt=20,id__lt=3)

Q对象可以使用&、|连接,&表示逻辑与,|表示逻辑或
查询阅读量大于20,或编号小于3的图书,只能使用Q对象实现,Q对象前可以使用~操作符,表示非not
BookInfo.objects.filter(Q(read_gt=20) | Q(pk__lt=3))

使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg(平均),Count(数量),Max(最大),Min(最小),Sum(求和),被定义在django.db.models中,aggregate的返回值是一个字典类型
BookInfo.objects.aggregate(Sum('read'))

排序
BookInfo.objects.all().order_by('read')
BookInfo.objects.all().order_by('-read')降序

分组查询
User.objects.values('is_active').annotate(total=Count('id')) values分组的依据 annotate查询的内容

关联查询
一对多:
book = BookInfo.objects.get(id=1)
herio = book.herioinfo_set.all()

多对一
herio = Herioinfo.objects.get(id=1)
book = herio.book
id = book_id

关联过滤查询
由多模型类条件查询一模型类数据
BookInfo.objects.filter(heroinfo__name='孙悟空')

由一模型类条件查询多模型类数据:
Herioinfo.objects.filter(book__read__gte=30)

查询集 QuerySet 对查询集可以再次调用过滤器进行过滤
all():返回所有数据。
filter():返回满足条件的数据。
exclude():返回满足条件之外的数据。
order_by():对结果进行排序。

创建查询集不会访问数据库,直到调用数据时,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用
使用同一个查询集,第一次使用时会发生数据库的查询,然后Django会把结果缓存下来,再次使用这个查询集时会使用缓存的数据,减少了数据库的查询次数

python django对数据表的增删改查操作的更多相关文章

  1. Django中多表的增删改查操作及聚合查询、F、Q查询

    一.创建表 创建四个表:书籍,出版社,作者,作者详细信息 四个表之间关系:书籍和作者多对多,作者和作者详细信息一对一,出版社和书籍一对多 创建一对一的关系:OneToOne("要绑定关系的表 ...

  2. python利用xmlrpc方式对odoo数据表进行增删改查操作

    # -*- encoding: utf-8 -*- import xmlrpclib #导入xmlrpc库,这个库是python的标准库. username ='admin' #用户登录名 pwd = ...

  3. AngularJS中使用$http对MongoLab数据表进行增删改查

    本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load ...

  4. Mysql数据表的增删改查

    ---恢复内容开始--- Mysql数据表的增删改查 1.创建表   语法:CREATE TABLE 表名(字段1,字段2,字段3.......) CREATE TABLE `users` ( `us ...

  5. C# - VS2019 通过DataGridView实现对Oracle数据表的增删改查

    前言 通过VS2019建立WinFrm应用程序,搭建桌面程序后,通过封装数据库操作OracleHelper类和业务逻辑操作OracleSQL类,进而通过DataGridView实现对Oracle数据表 ...

  6. Hibernate5笔记2--单表的增删改查操作

    单表的增删改查操作: (1)定义获取Session和SessionFactory的工具类: package com.tongji.utils; import org.hibernate.Session ...

  7. mysql 数据表的增删改查 目录

    mysql 表的增删改查 mysql 表的增删改查 修改表结构 mysql 复制表 mysql 删除表

  8. Django 文件配置、pycharm及django连接数据库、表的增删改查 总结

    静态文件配置 1.你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的 2.django如何给用户开设资源接口呢? ...

  9. MySQL数据库 | 数据表的增删改查

    MySQL数据的增删改查(crud) 本文结构 一.增加 create 二.修改 update 三.查询 retrieve(简单查询,下篇详细展开) 四.删除 delete 首先,创建简单的class ...

随机推荐

  1. Apache-log4j漏洞复现

    前言:昨天晚上当我还在睡梦中时,圈内爆出了核弹级的漏洞,今天我复现一下, 再开始前我们先建立一个maven项目,将pom.xml文件导入 <?xml version="1.0" ...

  2. 网络测试技术——802.1X TLS认证(上篇)

    一.TLS认证简介 1.TLS认证 (1)认证过程 · 最安全认证技术 · 实施最复杂 (2)TLS双向证书认证 · 服务器对客户端进行认证 · 客户端对服务器进行认证 2.TLS认证过程 3.交换机 ...

  3. 2021年都要过去啦,你还在用Excel做数据可视化效果吗?

    2021年都要过去啦,你还在用Excel做数据可视化效果吗?古语有云,"工欲善其事,必先利其器",没有专业的工具,前期准备的再好也是白搭.现在运用数据可视化工具于经营活动中的企业是 ...

  4. 【C#IO 操作】字符流(StreamWriter、StreamReader)

    StreamWaiter类和StreamReader类的用法 事实上, StreamReader为了性能的考虑, 在自己的内部内置并维护了一个byte buffer. 如果在声明StreamReade ...

  5. 由浅入深--ORM简介

    一.ORM简介 从传统的JDBC开始说起 下面是通过JDBC连接Oracle的步骤,如下代码所示: Connection conn = null; PreparedStatement stmt = n ...

  6. Linux Shell脚本_关闭防火墙

    转至:https://blog.csdn.net/weixin_40816738/article/details/105244851 ① 脚本编写创建脚本 vim closeFirewall.sh 添 ...

  7. journactl日志查看命令-渐入佳境

    --作者:飞翔的小胖猪 --创建时间:2021年2月27日 内容 journalctl是systemd统一管理所有unit(服务)的启动日志.可以通过journalctl一个命令查看所有日志. 所有用 ...

  8. sql 名词解析

    针对这个 sql 语句进行解析 1 SELECT 2 a.* 3 , b.L12_create_time L1第一次转L2的时间 4 , ROUND(c.L1_pending/60, 2) " ...

  9. js扒代码技巧(一)

    1.确定找到自己想要的代码 2.方法内部的代码需要执行后才能调用 导出方法: //案列1 //案例1 // 函数里面的方法被赋值成变量 // 解: //将函数在方法外导出到全局变量 var hex_m ...

  10. 矩池云 | 新冠肺炎防控:肺炎CT检测

    连日来,新型冠状病毒感染的肺炎疫情,牵动的不仅仅是全武汉.全湖北,更是全国人民的心,大家纷纷以自己独特的方式为武汉加油!我们相信坚持下去,终会春暖花开. 今天让我们以简单实用的神经网络模型,来检测肺炎 ...