Django ORM中的查询,删除,更新操作
ORM查询操作
修改views.py文件
from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher def data_oper(req):
# 获取 book 表 id 为2的价格
book = models.Book.objects.filter(id=2).values("price")
print(book) # 获取 author 表 id 为 1 的名字
authors = models.Author.objects.filter(id=1)[0]
print(authors) # 获取 author 表 id 为 3 名字
author1 = models.Author.objects.get(id=3)
print(author1) # 以 id 为倒序排列输出记录
author2 = models.Author.objects.order_by("-id")
print(author2) return HttpResponse("Hello world")
这里面获取了id为2的book
book=models。BOOK。object。exclu(id=2)
面是反向查询
from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher def data_oper(req):
# 查找 Publish name 是 广东工业出版社 的 书籍
obj=models.Publisher.objects.filter(name="广东工业出版社")[0]
print(obj.book_set.all().values("title")) return HttpResponse("Hello world")
def data_oper(req):
# 查找书籍名为 K8S 的出版社名字
print(models.Publisher.objects.filter(book__title="K8S").values("name"))
# 查找出版社名为 广东工业出版社 的书籍名字
print(models.Book.objects.filter(publisher__name="广东工业出版社").values("title")) return HttpResponse("Hello world")
from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher def data_oper(req):
# 查询所有出版社城市为 广州 的书名
ret = models.Book.objects.filter(publisher__city='广州').values('title')
print(ret) # 查询对应操作的sql语句
print(ret.query) return HttpResponse("Hello world")
ORM的删除操作
修改views.py的文件
from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher def data_oper(req):
# 多对多的情况下,删除 book id 为1,author id 大于0的记录
book = models.Book.objects.filter(id=2)[0]
authors = models.Author.objects.filter(id__gt=0)
book.authors.remove(*authors) # 删除单条记录,删除 book 表中 id 为 1 的记录
models.Book.objects.filter(id=1).delete() return HttpResponse("Hello world")
ORM的更新操作
也是要修改views,py
from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher def data_oper(req):
# 把 author id 为 3 的 name 改为 katy
author = models.Author.objects.get(id=3)
author.name = "katy"
author.save() return HttpResponse("Hello world")
Django ORM中的查询,删除,更新操作的更多相关文章
- Django ORM 中的批量操作
Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...
- 优化Django ORM中的性能问题(含prefetch_related 和 select_related)
Django是个好工具,使用的很广泛. 在应用比较小的时候,会觉得它很快,但是随着应用复杂和壮大,就显得没那么高效了.当你了解所用的Web框架一些内部机制之后,才能写成比较高效的代码. 怎么查问题 W ...
- 简单的php Mysql类(查询 删除 更新)
php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了. 代码如下 复制代码 class mysql { ...
- 请教如何用 peewee 实现类似 django ORM 的这种查询效果。
本人新入坑的小白,如有不对的地方请包涵~~~! 在 django 中代码如下:模型定义: class Friends(models.Model): first_id = models.IntegerF ...
- django ORM中的复选MultiSelectField的使用
下载和介绍: https://pypi.org/project/django-multiselectfield/ 在django ORM的使用中,经常会出现选择的情况,例如: class person ...
- Django ORM中常用字段和参数
一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...
- hibernate的中的查询与级联操作
1.Criteria查询接口适用于组合多个限制条件来搜索一个查询集. 要使用Criteria,需要遵循以下步骤: *创建查询接口: Criteria criteria=session.createCr ...
- django ORM中的RelatedManager(关联管理器)
关联管理器应用在 一对多的表 或者 多对多的表 多对多表中的用法: 在多对多的表中 正向查询 #基于对象的查询 #正查 # author_obj = Author.objects.get(id=1) ...
- Django ORM多表查询练习
ORM多表查询 创建表结构: from django.db import models # 创建表结构 # Create your models here. class Class_grade(mod ...
随机推荐
- vertx使用过程中浏览器端Cookie重复问题
[问题描述] 背景: 使用vertx提供的服务,使用Dispatcher做路由转发,内部通过routingcontext做请求传递及响应. 现象: 在谷歌浏览器的Network中,看到Cookie中有 ...
- 容斥原理——状态压缩zoj3233 zoj2836升级版
zoj2836就是裸的求lcm进行容斥,用dfs比较直观 zoj3233增加了一个集合b,lcm(b)的倍数是不符合条件的 那么在zoj2836的基础上,把lcm(x,lcm(b))造成的影响减去即可 ...
- Zuul微服务网关
Zuul简介: Zuul是Netflix开源的微服务网关,它可以和Eureka.Ribbon.Hystrix等组件配合使用.Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能 ...
- 杂项-公司:Facebook
ylbtech-杂项-公司:Facebook Facebook(脸书)是美国的一个社交网络服务网站 ,创立于2004年2月4日,总部位于美国加利福尼亚州帕拉阿图,2012年3月6日发布Windows版 ...
- java — 抽象类和接口
老生常谈的一个概念,很明确,不过我们多从几个角度来看下应该会有更好的理解,最近翻了下java8的某些新特性 关于接口的新特性让笔者受惊了,下面结合下做个总结,有更新的话直接在这里更新. 设计层面讲: ...
- Mybatis的插件 PageHelper 分页查询使用方法
参考:https://blog.csdn.net/ckc_666/article/details/79257028 Mybatis的一个插件,PageHelper,非常方便mybatis分页查询,国内 ...
- Luogu P2101 命运石之门的选择(分治+搜索)
P2101 命运石之门的选择 题意 题目描述 在某一条不知名世界线的冈伦今天突然接到了一条\(dmail\),上面说世界线将会发生巨大变动,未来的他无论如何都无法扭转这种变动回到原来的世界线.而世界线 ...
- ionic view 视图
ionic view 方法 $ionicView.loaded 视图已经被加载了.这事件只发生一次当视图被创建并添加到Dom中.当跳出页面并且被缓存了的话,再次访问这个页面时这个时间将不会被激活.L ...
- vbox虚拟机复制&&虚拟机指定静态IP
一.复制镜像(假设源镜像已经用桥接方式,可以访问互联网). 注意需要重新生成mac地址 二.复制完成,启动复制好的镜像(注意,此时的镜像无法联网) vi /etc/udev/rules.d/70-pe ...
- NSIS使用WinVer.nsh头文件判断操作系统版本
NSIS使用WinVer.nsh头文件判断操作系统版本,首先请下载最新的WinVer.nsh: http://nsis.sourceforge.net/Include/WinVer.nsh(下载后置于 ...