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 (三) 查询,删除,更新操作的更多相关文章

  1. Django orm进阶查询(聚合、分组、F查询、Q查询)、常见字段、查询优化及事务操作

    Django orm进阶查询(聚合.分组.F查询.Q查询).常见字段.查询优化及事务操作 聚合查询 记住用到关键字aggregate然后还有几个常用的聚合函数就好了 from django.db.mo ...

  2. 简单的php Mysql类(查询 删除 更新)

    php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了.      代码如下 复制代码 class mysql { ...

  3. Django --- ORM表查询

    目录 使用数据库之前的配置工作 单表操作常用的方法 一对多字段的增删改查 多对多字段数据的增删改查 跨表查询 聚合函数 分组查询 F与Q查询 使用数据库之前的配置工作 settings.py中的配置 ...

  4. django orm 的查询条件

    Django的ORM查询操作: 查询数据库操作是一个非常重要的技术.在Django中,查询一般就是使用filter.exclude.get三个方法来实现,在调用这些方法的时候传递不同的查询条件来实现复 ...

  5. Django orm 常用查询筛选总结

    本文主要列举一下django orm中的常用查询的筛选方法: 大于.大于等于 小于.小于等于 in like is null / is not null 不等于/不包含于 其他模糊查询 model: ...

  6. day52:django:ORM单表/多表操作

    目录 1.ORM 2.ORM单表增删改查 13个必知必会的查询接口 filter基于双下划线的模糊查询 3.ORM多表增删改查 ORM 什么是ORM? ORM(object relational ma ...

  7. Python - Django - ORM F查询和Q查询

    models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(p ...

  8. django orm高级查询 F表达式和Q表达式以及分组annotate

    1.关联关系映射及查询1.1django默认开启延迟加载所有多对1和1对1如果不使用select_related(),需要会延迟加载获取到相关对象,因为延迟可能会造成n+1次查询的问题,所以便有了se ...

  9. Python - Django - ORM 分组查询补充

    单表查询: models.py: from django.db import models class Employee(models.Model): name = models.CharField( ...

随机推荐

  1. A.DongDong破密码

    链接:https://ac.nowcoder.com/acm/contest/904/A 题意: DongDong是一个喜欢密码学的女孩子,她养的萨摩耶叼着一张带着加密信息的纸条交给了她,如果她不能破 ...

  2. 实例/静态工厂方法得到bean

    <bean id="a" class="com.yundaex.wms.config.TestBeanChild" /> <bean id=& ...

  3. Hive进阶_内置函数

    Hive数学函数 round : 四舍五入 ceil : 向下取整 floor : 向上取整 ),),),),); Hive字符函数 select lower('Hello World'), uppe ...

  4. 记录一个修改application.properties时遇到的坑

    有一个需求是会频繁修改配置文件中的常量,为了方便就会用unzip解压war包,修改propertites中的值后重新打war 包,部署,但是发现修改的值没有起作用,,一直在纠结...后来发现其实在编译 ...

  5. Php—AJAX跨域问题

    <?php /** * ajax proxy * ajax跨域解决办法 * @author  suconghou <suconghou@126.com> * @version v1. ...

  6. 将SpringBoot默认使用的tomcat替换为undertow

    随着微服务的兴起,越来越多的互联网应用在选择web容器时使用更加轻量的undertow或者jetty.SpringBoot默认使用的容器是tomcat,如果想换成undertow容器,只需修改pom. ...

  7. Java ActiveMQ 示例

    所需引入Jar包: jms-1.1.jar activemq-all-5.15.0.jar 生产者 package com.mousewheel.demo; import javax.jms.Conn ...

  8. 发现了一个entity framework的BUG

    小弟学浅才疏可能是小题大做,但遇上了并且让我麻烦了一阵,就值得记下来 BUG的过程就是我在建立实体模型的时候 命名了一个叫system的实体模型 导致了所有生成类中 引用using system失败

  9. Kendo DataSource 概述

    Kendo DataSource 概述 Kendo 的数据源支持本地数据源( JavaScript 对象数组),或者远程数据源(XML, JSON, JSONP),支持 CRUD 操作(创建,读取,更 ...

  10. css3动画之圆形运动轨迹

    css3中通过@keyframes定义动画,animation设置动画属性,从而实现动画效果: 在animation属性当中,可以规定动画的名称.整个动画的运行时间.运动的速度曲线以及其延迟时间.播放 ...