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 ...
随机推荐
- 0906NOIP模拟测试赛后总结
我进前十辣.然而有10个大佬去学LCT了于是没有考试. Dybala神和exzkt神分-rank1,奶风神和林哥分-rank3,wc.miemeng和DuanYue神140分-rank5. 我.ooo ...
- 2019/10/17 CSP模拟 总结
T1 补票 Ticket 没什么好说的,不讲了 T2 删数字 Number 很后悔的是其实考场上不仅想出了正解的方程,甚至连优化都想到了,却因为码力不足只打了\(O(n^2)\)暴力,甚至还因为细节挂 ...
- java当拿到一个项目后该怎么看的一些个人见解(附带快捷键)
刚出来实习,BOSS让我用maven下载架包后进行修改. 刚开始拿到项目两眼一黑,完全不知道该怎么下手.想找server层,完全不知道在那么多架包那里开始弄. 这个时候首先要明确你要修改的位置,找到这 ...
- iOS之CALayer属性简介
/* CoreAnimation - CALayer.h Copyright (c) 2006-2017, Apple Inc. All rights reserved. */ #import < ...
- 安装hadoop伪分布式
修改hosts cat /etc/hosts 127.0.0.1 mo.don.com 创建用户 useradd hadoop passwd hadoop sudo授权 visudo hadoop A ...
- C++ 函数模板&类模板详解
在 C++ 中,模板分为函数模板和类模板两种.函数模板是用于生成函数的,类模板则是用于生成类的. 函数模板&模板函数 类模板&模板类 必须区分概念 函数模板是模板,模板函数时 ...
- quartz任务调度基础: Job/Trigger/Schedule
1.Quartz基本用法 参见官方说明:[Quartz Job Scheduler] 三大核心元素: Job:定义要执行的任务 triggers:任务触发策略 scheduler:关联j ...
- python学习笔记4.1_检测和过滤异常值
1.查看数据分布data.describe() 2.找出某列中符合筛选条件的值 3.找出符合筛选条件的行 4.用np.sign(data)*3设置绝对值的标准 data[np.abs(data)> ...
- Spring Cloud Alibaba 使用Sentinel实现接口限流
Sentinel是什么 Sentinel的官方标题是:分布式系统的流量防卫兵.从名字上来看,很容易就能猜到它是用来作服务稳定性保障的.对于服务稳定性保障组件,如果熟悉Spring Cloud的用户,第 ...
- Dmarc指定外域邮箱接收报告
场景说明: 如果要将DMARC报告发送到记录所在的域以外,则接收域需要配置DNS记录,以便电子邮件服务提供商知道收件人指定报告授权. ================================= ...