新增操作:
方式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. java的不正确使用方法以及什么情况不能使用java

    一.Python3.6新特性 什么情况下不能运用 Java 泛型   1. 前语 Java 1.5 引入了泛型来保证类型安全,避免在运行时发作类型转换反常,让类型参数化,提高了代码的可读性和重用率.可 ...

  2. Vue3学习(十五)之 级联选择组件Cascader的使用

    写在前面 好像又过去了一周,依旧是什么也没产出,不是懒,而是心情不好,什么也不想干,失眠是常事. 应该是从今年开始,突然感觉博客园就像是我自己的日记一样,承载着自己的喜怒哀乐和酸甜苦辣咸,当然,尴尬的 ...

  3. k8s被删除的pod一直Terminating状态

    微服务项目,部分服务无法delete,一直处于Terminating状态 kubectl get po -n gift 强制删除product:kubectl delete -n gift po/pr ...

  4. windows加普通用户加入管理员组

    net localgroup administrators 用户名 /add ------------>使用这句命令添加用户到管理组 shutdown -g 重启电脑

  5. [题解]BZOJ1004 序列函数

    原题找不到了,应该是usaco之类的题目吧.给一个可以交题的链接:http://www.cqoi.net:2012/problem.php?id=1004 思路:将素数一个一个往里乘,保证扫描的顺序是 ...

  6. 数据分析工具那么多,掌握Smartbi这一个就够了!

    经常听见有人问,数据分析用什么工具好? 被大家熟知的数据分析工具有很多,比如Excel.BI.R.Python--具体选择哪个这要看个人的需求,如果非要说哪个好,其中BI工具小编觉得"老少皆 ...

  7. centos7 下搭建 hfish 2.1.0

    HFish是一款基于 Golang 开发的跨平台多功能主动攻击型蜜罐网络钓鱼平台框架系统,为了企业安全防护测试做出了精心的打造 HFish 开发的官网:https://hfish.io HFish地址 ...

  8. 四、Java基础

    Java基础 在开始学习Java基础之前,我们先来学习一下IDEA 打开IDEA,新建一个项目(New Project),选择空项目(Empty Project),填写项目名(Project name ...

  9. C#学习路线和感想

    C#我目前是针对我所需要的部分进行有选择的学习,我看了<C#程序设计经典300例>,发现这个语言还是很有趣的,企业实用性很强,如果以后想做企业这一块可以学学.

  10. centeros 命令

    一.查看系统时间.硬件时间 # date // 查看系统时间 #hwclock // 查看硬件时间 二.时间服务器上的时间同步的方法 安装ntpdate工具 # yum -y install ntp ...