Django ORM 中的单表查询 API(1)
在 Django 中,对象关系映射(ORM)提供了一种功能强大、表现力丰富的数据库交互方式。ORM 允许开发人员使用高级 Python 代码执行数据库查询,从而更轻松地处理数据库实体。
下面,我们将探讨 Django ORM 中单表查询 API 的用法,重点是 all()、filter()、get()、first() 和 last()。
1、all() 方法
all()方法:返回一个包含数据库表中所有对象的 QuerySet。当在模型上调用该方法时,它会生成一个 SQL 查询,以检索相应表中的所有记录。例如
```
ret = Book.objects.all()
```
这将从 `Book` 表中获取所有记录,并以 QuerySet 的形式返回。
2、filter()方法
filter()方法:用于根据某些条件缩小查询结果的范围。它接受指定过滤条件的关键字参数。例如
```
ret = Book.objects.filter(name="西游记")
```
这将从 `Book` 表中检索名称为 "西游记 "的记录。
3、get()方法
get()方法:用于从数据库中检索符合指定条件的单个对象。该方法只期望得到一个结果,如果有零条或多条匹配记录,则会引发异常。例如
```
ret = Book.objects.get(name="西游记")
```
这将从 `Book` 表中检索名称为 "西游记 "的记录。
4、first() 和 last() 方法
first()和last()方法:分别用于从查询结果中检索第一个和最后一个对象。它们会从 QuerySet 返回一个模型对象。例如
```
fbook = Book.objects.all().first()
lbook = Book.objects.all().last()
```
通过这些方法,可以从 `Book` 表中检索第一条和最后一条记录。
5、代码演示
############### 单表查询API ##################
def query(request):# 1 all() 返回 QuerySet# ret=Book.objects.all()# SELECT `app01_book`.`id`, `app01_book`.`name`, `app01_book`.`price`, `app01_book`.`pub_date`,# `app01_book`.`publish` FROM `app01_book` LIMIT 21# print(ret)# <QuerySet [<Book: Book object (7)>, <Book: Book object (8)>, <Book: Book object (13)>,<Book: Book object (14)>, <Book: Book object (15)>, <Book: Book object (16)>,<Book: Book object (17)>, <Book: Book object (18)>]># <QuerySet[ < Book: 111 >, < Book: linux >, < Book: java >, < Book: java999 >, < Book: 飘 >, < Book: 红楼梦 >, < Book: 西游记 >, < Book: 水浒传 >] ># 2 filter() 返回 QuerySet# ret=Book.objects.filter(name="西游记")# SELECT `app01_book`.`id`, `app01_book`.`name`, `app01_book`.`price`, `app01_book`.`pub_date`,# `app01_book`.`publish` FROM `app01_book` WHERE `app01_book`.`name` = '西游记' LIMIT 21# print(ret)# <QuerySet [<Book: 西游记>]># 3 get() 返回 查询到的 models对象,且只能查出来一个,否则报错# ret=Book.objects.get(name="西游记")# print(ret) # 西游记 __str__()# print(ret.name) # 西游记# 4 first(),last() : QuerySet调用,返回model对象# fbook=Book.objects.all()[0]fbook = Book.objects.all().first()lbook = Book.objects.all().last()return HttpResponse("query success")
6、小结
Django ORM 中的单表查询 API 提供了一种使用高级 Python 代码与数据库交互和检索数据的便捷方法。通过使用 `all()`、`filter()`、`get()`、`first()` 和 `last()` 等方法,开发人员可以轻松执行各种数据库查询。
通过了解和利用这些方法,开发人员可以在其 Django 应用程序中高效地查询和操作数据,从而使开发过程更加简化、更有成效。
相关文章:
Django ORM 中的单表查询 API(1)
在 Django 中,对象关系映射(ORM)提供了一种功能强大、表现力丰富的数据库交互方式。ORM 允许开发人员使用高级 Python 代码执行数据库查询,从而更轻松地处理数据库实体。 下面,我们将探讨 Django ORM 中单表查询 API …...
电子雨html代码
废话不多说下面是代码: <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>Code</title><style>body{margin: 0;overflow: hidden;}</style></head><body><c…...
xadmin基于Django的后台管理系统安装与使用
xadmin是基于Django的后台管理系统 官网:http://sshwsfc.github.io/xadmin/ github地址:https://github.com/sshwsfc/xadmin 安装方式 pip安装 pip install xadmin在setting配置中添加: INSTALLED_APPS [xadmin,crispy_forms, ]在urls.py…...
[go语言]输入输出
目录 知识结构 输入 1.Scan 编辑 2.Scanf 3.Scanln 4.os.Stdin --标准输入,从键盘输入 输出 1.Print 2.Printf 3.Println 知识结构 输入 为了展示集中输入的区别,将直接进行代码演示。 三者区别的结论:Scanf格式化输入&#x…...
【SpringBoot系列】AOP详解
🤵♂️ 个人主页:@香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收…...
openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c
文章目录 openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c概述笔记END openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c 概述 对私钥对明文做签名(摘要算法为SHA256) 用公钥对密文做验签(摘要算法为SHA256) 笔记 /*! \file rsa_pss_hash.c \note openss…...
Redis相关知识点
1.什么是Redis Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库,它支持网络,可基于内存亦可持久化,并提供多种语言的API。Redis具有高效性、原子性、支持多种数据结构、…...
嵌入式开发--STM32G4系列片上FLASH的读写
这个玩意吧,说起来很简单,就是几行代码的事,但楞是折腾了我大半天时间才搞定。原因后面说,先看代码吧: 读操作 读操作很简单,以32位方式读取的时候是这样的: data *(__IO uint32_t *)(0x080…...
嵌入式-Stm32-江科大基于标准库的GPIO的八种模式
文章目录 一:GPIO输入输出原理二:GPIO基本结构三:GPIO位结构四:GPIO的八种模式道友:相信别人,更要一百倍地相信自己。 (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》…...
2024年1月17日Arxiv热门NLP大模型论文:THE FAISS LIBRARY
Meta革新搜索技术!提出Faiss库引领向量数据库性能飞跃 引言:向量数据库的兴起与发展 随着人工智能应用的迅速增长,需要存储和索引的嵌入向量(embeddings)数量也在急剧增加。嵌入向量是由神经网络生成的向量表示&…...
深度解析JVM类加载器与双亲委派模型
概述 Java虚拟机(JVM)是Java程序运行的核心,其中类加载器和双亲委派模型是JVM的重要组成部分。本文将深入讨论这两个概念,并解释它们在实际开发中的应用。 1. 什么是类加载器? 类加载器是JVM的一部分,负…...
前端下载文件流,设置返回值类型responseType:‘blob‘无效的问题
前言: 本是一个非常简单的请求,即是下载文件。通常的做法如下: 1.前端通过Vue Axios向后端请求,同时在请求中设置响应体为Blob格式。 2.后端相应前端的请求,同时返回Blob格式的文件给到前端(如果没有步骤…...
C++核心编程——类和对象(一)
本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…...
脱模斜度是什么意思,为什么要有脱模斜度,没有斜度不行吗?
问题描述:脱模斜度是什么意思,为什么要有脱模斜度,没有斜度不行吗? 问题解答: 脱模斜度是指在模具中的零件在脱模(从模具中取出)过程中相对于模具开合方向的倾斜程度。在模具设计和制造中&…...
【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》
【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》 写在最前面8.1 公钥加密理论随机预言机模型(Random Oracle Model,ROM) 写在最前面 主要在 哈工大密码学课程 张…...
牛客-寻找第K大、LeetCode215. 数组中的第K个最大元素【中等】
文章目录 前言牛客-寻找第K大、LeetCode215. 数组中的第K个最大元素【中等】题目及类型思路思路1:大顶堆思路2:快排二分随机基准点 前言 博主所有博客文件目录索引:博客目录索引(持续更新) 牛客-寻找第K大、LeetCode215. 数组中的第K个最大元…...
MySQL的各种日志
目录 一、错误日志 二、二进制日志 1、介绍 2、作用 3、相关信息 4、日志格式 5、查看二进制文件 6、二进制日志文件删除 三、查询日志 四、慢日志 一、错误日志 记录MySQL在启动和停止时,以及服务器运行过程中发生的严重错误的相关信息,当数据库…...
rust跟我学六:虚拟机检测
图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么检测是否在虚拟机里运行的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:…...
测试bug分析
项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) 问题描述 提示:这里描述项目中遇到的问题࿱…...
css-盒子等样式学习
盒子居中,继承外层盒子的宽高 兼容性(border-box)将边框收到盒子内部 初始化div 不用管box-setting content-box 还原 创建为一个类 ,让所有需要还原的类 进行继承 padding 用法表示margin上下左右边距 body 外边距&…...
别再只用箱线图了!用Python的PtitPrince库5分钟搞定雨云图,数据分布一目了然
数据可视化新选择:用PtitPrince打造专业级雨云图 在数据分析的世界里,可视化工具的选择往往决定了我们能否准确传达数据背后的故事。传统箱线图虽然简洁,却隐藏了太多细节;提琴图展示了分布形态,却丢失了原始数据点。这…...
Fish-Speech-1.5在Ubuntu20.04上的Docker化部署教程
Fish-Speech-1.5在Ubuntu20.04上的Docker化部署教程 1. 引言 想快速搭建一个高质量的语音合成系统吗?Fish-Speech-1.5可能是你正在寻找的解决方案。这个模型支持13种语言,只需要10-30秒的声音样本就能生成自然流畅的语音,而且延迟不到150毫…...
ESP8266红外TCP服务框架:轻量级协议网关设计
1. 项目概述IrServiceBase是专为 ESP8266 系列微控制器(包括 ESP-01、NodeMCU、Wemos D1 Mini 等)设计的 Arduino C 库,其核心定位并非直接驱动红外发射/接收硬件,而是构建一个可复用、可扩展的 TCP/IP 红外服务框架。该库不实现底…...
Cinema 4D 2026液体模拟实战:如何用新功能打造逼真水流效果(附参数设置)
Cinema 4D 2026液体模拟实战:如何用新功能打造逼真水流效果(附参数设置) 在三维动画和特效设计领域,液体模拟一直是技术难度最高、计算资源消耗最大的环节之一。Cinema 4D 2026针对这一核心功能进行了重大升级,特别是改…...
Vue项目实战:5分钟搞定ECharts与高德地图(AMap)的完美结合
Vue项目实战:5分钟实现ECharts与高德地图的深度整合 最近在开发一个物流数据可视化平台时,遇到了一个典型需求:如何在地图上动态展示全国各区域的订单流向?经过反复尝试,发现ECharts与高德地图的组合是最佳解决方案。本…...
Qwen3-1.7B效果实测:轻量级模型也能写出高质量文案和代码
Qwen3-1.7B效果实测:轻量级模型也能写出高质量文案和代码 1. 开篇:小身材,大能量 你可能听过很多关于大模型的讨论,动辄几百亿、上千亿参数,听起来很厉害,但部署起来也让人头疼——需要昂贵的显卡&#x…...
终极宽屏补丁:让《暗黑破坏神2》在现代电脑上重获新生
终极宽屏补丁:让《暗黑破坏神2》在现代电脑上重获新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否曾在…...
SDXL-Turbo多场景落地教程:覆盖电商、游戏、教育、自媒体的6大用法
SDXL-Turbo多场景落地教程:覆盖电商、游戏、教育、自媒体的6大用法 1. 认识SDXL-Turbo:重新定义AI绘画体验 SDXL-Turbo不是传统的AI绘画工具,而是一个革命性的实时创作伙伴。想象一下,你打字的同时,画面就在眼前实时…...
Seed-VC语音转换工具终极指南:零样本语音克隆技术完全解析
Seed-VC语音转换工具终极指南:零样本语音克隆技术完全解析 【免费下载链接】seed-vc zero-shot voice conversion & singing voice conversion, with real-time support 项目地址: https://gitcode.com/GitHub_Trending/se/seed-vc Seed-VC作为当前最先进…...
深度学习训练不再难:环境镜像帮你搞定所有依赖,专注代码开发
深度学习训练不再难:环境镜像帮你搞定所有依赖,专注代码开发 1. 镜像环境概述 深度学习项目开发中最令人头疼的问题之一就是环境配置。不同框架版本、CUDA版本、Python版本之间的兼容性问题常常让开发者陷入"依赖地狱"。本镜像正是为解决这一…...
