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.objects.exclude(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进阶查询(聚合、分组、F查询、Q查询)、常见字段、查询优化及事务操作
Django orm进阶查询(聚合.分组.F查询.Q查询).常见字段.查询优化及事务操作 聚合查询 记住用到关键字aggregate然后还有几个常用的聚合函数就好了 from django.db.mo ...
- 简单的php Mysql类(查询 删除 更新)
php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了. 代码如下 复制代码 class mysql { ...
- Django --- ORM表查询
目录 使用数据库之前的配置工作 单表操作常用的方法 一对多字段的增删改查 多对多字段数据的增删改查 跨表查询 聚合函数 分组查询 F与Q查询 使用数据库之前的配置工作 settings.py中的配置 ...
- django orm 的查询条件
Django的ORM查询操作: 查询数据库操作是一个非常重要的技术.在Django中,查询一般就是使用filter.exclude.get三个方法来实现,在调用这些方法的时候传递不同的查询条件来实现复 ...
- Django orm 常用查询筛选总结
本文主要列举一下django orm中的常用查询的筛选方法: 大于.大于等于 小于.小于等于 in like is null / is not null 不等于/不包含于 其他模糊查询 model: ...
- day52:django:ORM单表/多表操作
目录 1.ORM 2.ORM单表增删改查 13个必知必会的查询接口 filter基于双下划线的模糊查询 3.ORM多表增删改查 ORM 什么是ORM? ORM(object relational ma ...
- Python - Django - ORM F查询和Q查询
models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(p ...
- django orm高级查询 F表达式和Q表达式以及分组annotate
1.关联关系映射及查询1.1django默认开启延迟加载所有多对1和1对1如果不使用select_related(),需要会延迟加载获取到相关对象,因为延迟可能会造成n+1次查询的问题,所以便有了se ...
- Python - Django - ORM 分组查询补充
单表查询: models.py: from django.db import models class Employee(models.Model): name = models.CharField( ...
随机推荐
- Oracle使用SQL语句修改字段类型
Oracle使用SQL语句修改字段类型 1.如果表中没有数据 Sql代码 1 2 3 alter table 表名 modify (字段名1 类型,字段名2 类型,字段名3 类型.....) alt ...
- 045 Jump Game II 跳跃游戏 II
给定一个非负整数数组,你最初位于数组的首位.数组中的每个元素表示你在该位置的最大跳跃长度.你的目标是用最小跳跃次数到达最后一个索引.例如: 给定一个数组 A = [2,3,1,1,4]跳到最后一个索引 ...
- (转)mysqldump: Got error: 1556: You can't use locks with log tables.
mysqldump: Got error: 1556: You can't use locks with log tables. 原文:http://blog.51cto.com/oldboy/112 ...
- 从一个LocalDateTime引发的疑问
一 公司有同事部署出错,然后查日志,找时间,从k8s得到的时间是 2017-06-16T09:38:48.580 +0000,然后他就纳闷了,因为他根本不会在9点部署好吧,而且9点大多数程序员都没开 ...
- This file's format is not supported or you don't specify a correct format. 解决办法
string path = @"c:\请假统计表.xlsx"; Workbook workBook = new Workbook(); workBook.Open(path); A ...
- 第十五章 提升用户体验 之 设计实现MVC controllers 和 actions
1. 概述 controllers 和 actions 是 ASP.NET MVC4中非常重要的组成部分. controller管理用户和程序间的交互,使用action作为完成任务的方式. 如果是包含 ...
- 【踩坑】List 的陷阱
今天测试iReview项目数据的反馈,发现有些语句总无法执行. 经过调试排查后,发现List<自定义类>返回了空集"[]",却无法进入if语句里面,即 if (List ...
- IDEA SpringBoot +thymeleaf配置
1.pom添加以下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...
- U3D加载服务器上的assetbundle
在Unity3D中,如果加载服务器上的AssetBundle,总是会提示找不到crossdomain.xml文件,即使添加了该文件,也会报同样的错误.属于跨域访问报错的问题. 官方的解决方案如下: h ...
- 【虚拟机-远程连接】Azure Linux 虚拟机常见导致无法远程的操作
对Azure虚拟机的一些操作可能会导致无法远程连接,本文罗列了以下导致不能远程连接的场景: 场景1 - 在虚拟机配置IP地址或MAC地址 场景2 - 错误地修改服务的配置文件 场景3 - 误设置防火墙 ...