当前位置: 首页 > news >正文

fastzdp_sqlmodel新增get_first和is_exitsts方法

说明

经过fastzdp_login的整合,我们发现,fastzdp_sqlmodel还可以继续封装两个便捷的方法。

  • get_first:获取查询结果集中的第一条数据
  • is_exitsts:判断数据是否已存在

封装get_first方法

def get_first(engine, model, query_dict: dict):"""获取查询结果中的第一条数据:param engine: 引擎对象:param model: 模型类:param query_dict: 查询字典:return: 存在数据返回模型对象,否则返回None"""data = get_by_dict(engine, model, query_dict)if isinstance(data, list) and len(data) > 0:return data[0]

测试get_first方法

示例:查询名字叫张三1的用户

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fs.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fs.init_table(engine)# 创建数据
fs.add(engine, User(name="张三1", age=23))
fs.add(engine, User(name="张三2", age=23))
fs.add(engine, User(name="张三3", age=23))# 查询第一条数据
u = fs.get_first(engine, User, {"name": "张三1"})
print(u)

执行结果如下:
在这里插入图片描述

从测试结果来看,这个方法是基本符合预期的。

封装is_exists方法

这个方法比较简单,我们只需要执行查询,有查询结果即可。

def is_exists(engine, model, query_dict: dict) -> bool:"""根据查询字典指定的键值对等值查询数据:param engine: 引擎对象:param model: 模型类:param query_dict: 查询字典"""data = get_by_dict(engine, model, query_dict)return isinstance(data, list) and len(data) > 0

测试is_exists方法

我们分别判断一个存在的数据和一个不存在的数据,查看结果是否符合预期。

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fs.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fs.init_table(engine)# 创建数据
fs.add(engine, User(name="张三1", age=23))
fs.add(engine, User(name="张三2", age=23))
fs.add(engine, User(name="张三3", age=23))# 判断是否存在
print(fs.is_exists(engine, User, {"name": "张三1"}))
print(fs.is_exists(engine, User, {"name": "张三11"}))

执行结果如下:
在这里插入图片描述

从执行结果来看,是基本符合预期的。

总结

本教程主要记录了get_first和is_exists这两个方法的封装过程。

如果大家需要FastAPI零基础到项目实战的全套录播课程,或者Python一对一的私教课指导,欢迎留言或者私信。

相关文章:

fastzdp_sqlmodel新增get_first和is_exitsts方法

说明 经过fastzdp_login的整合,我们发现,fastzdp_sqlmodel还可以继续封装两个便捷的方法。 get_first:获取查询结果集中的第一条数据is_exitsts:判断数据是否已存在 封装get_first方法 def get_first(engine, model, query_di…...

嵌入式软件--数电基础 DAY 3

一、二进制 (1)文字表述 二进制数只能取0,1两个数字,逢二进一。 通过二进制表达文字。如战争时代的电报。 通过电灯泡的亮灭传递出信息。可以对灯亮和灯灭富裕一些含义,就能传达出想要的消息。 这就是编码和解码两…...

【生成式人工智能-十五-经典的影像生成方法-GAN】

经典的影像生成方法-GAN GANDiscriminatorGenerator还需要加入额外信息么 GAN可以加在其他模型上面我们可以用影像生成模型做什么? 前面讲过VAE和Flow-based以及diffusion Model ,今天讲最后一种经典的生成方法GAN。 GAN 前面讲的几种模型都是用加入额外…...

python 已知x+y=8 求x*y*(x-y)的最大值

先用导数求解 已知xy8 求xy(x-y)的最大值 令y8-x 则 f(x)x⋅(8−x)⋅(x−(8−x))x⋅(8−x)⋅(2x−8) 导数方程为 f(x)-3x^2 24x - 32 求方程 − 3 x 2 24 x − 32 0 -3x^2 24x - 32 0 −3x224x−320 的根。 首先,我们可以尝试对方程进行因式分解。观察…...

windows平台的postgresql主从数据库流备份

主: 操作系统:windows10 数据库版本:postgresql-16.2 ip:192.168.3.254 从: 操作系统:windows10 数据库版本:postgresql-16.2 ip:192.168.3.253 配置主库 配置 pg_hba.conf 文件 在 pg 的安装目录下,找到 …...

Spring 常见设计模式

什么是设计模式? 设计模式(Design pattern)是为解决软件设计中通用问题而被提出的一套指导性思想。它是一种被反复验证、经过实践证明并被广泛应用的代码设计经验和思想总结,可以帮助开发者通过一定的模式来快速的开发高质量、可维…...

优化大量数据导出到Excel的内存消耗(二):如果数据超出Excel单表上限,则进行分表

优化前:优化大量数据导出到Excel的内存消耗_大文件异步导出 内存占用高-CSDN博客 写Excel文件报错:Invalid row number (1048576) outside allowable range (0..1048575) 写入Excel时遇到IllegalArgumentException,原因是超出允许的最大行数…...

rustrover打开会报Error: Invalid toolchain

如果 cargo --version 正常输出,但在使用 RustRover 时出现“Invalid toolchain”错误,可能是由于 RustRover 工具链配置有问题或路径指向错误。 解决步骤: 1. 检查 RustRover 的工具链配置 打开 RustRover,进入 Preferences 或…...

docker-compose 安装canal

创建 Canal 配置文件 /conf/canal.properties mkdir -p conf/ touch /conf/canal.properties # canal.properties# tcp bind ip canal.ip 0.0.0.0 canal.port 11111 canal.metrics.pull.port 11112# zookeeper 集群配置 canal.zkServers canal.zookeeper.sessionTimeout…...

Unity动画模块 之 3D Rig页签

​本文仅作笔记学习和分享,不用做任何商业用途本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ 1.Rig页签 Rig 选项卡 - Unity 手册,rig是设置骨骼与替身系统的,工作流程如下 Avatar是什么…...

【蓝桥杯冲刺省一,省一看这些就够了-Java版本】蓝桥杯日期问题相关模板以及练习题

蓝桥杯历年省赛真题 点击链接免费加入题单 日期问题 java.time Java 中用于处理日期和时间的主要类位于 java.time 包中。以下是一些常用的类和其功能的简要介绍: LocalDate:表示日期。它提供了获取年、月、日以及日期之间比较的方法。 LocalDate to…...

【经典算法】BFS_FloodFill算法

目录 1, 算法介绍2,算法原理和代码实现(含题目链接)733.图像渲染200.岛屿的数量695.岛屿的最大面积130.被围绕的区域 3, 算法总结 1, 算法介绍 FloodFill(洪水灌溉) 算法介绍: 假设一个 4 * 4 的方格代表一块土地&am…...

RocketMQ之Topic主题详解

Topic概念定义 主题:RocketMQ中消息传输和存储的顶层容器,用于标识同类业务中逻辑的消息,可理解为消息的分类,主题消息的分类取决于业务,要发送的业务消息最好单独是一个Topic主题,以保证互相不被干扰Topi…...

实战OpenCV之图像显示

基础入门 OpenCV提供的功能非常多,图像显示是最基础也是最直观的一部分。它让我们能够直观地看到算法处理后的效果,对于调试和验证都至关重要。在OpenCV中,图像显示主要依赖于以下四个关键的数据结构和函数。 1、Mat类。这是OpenCV中最基本的…...

I2C的10-bit地址空间

10-bit地址空间: I2C支持 10-bit的设备地址,此时的时序如下图所示: 在 10-bit地址的 I2C系统中,需要两个帧来传输 slave的地址。第一个帧的前 5个 bit固定为 b11110,后接 slave地址的高 2位,第 8位仍然是 …...

TinyWebserver的复现与改进(6):定时器处理非活动连接

如果客户端长时间没有动作,会占用了许多连接资源,严重影响服务器的性能。因此需要通过实现一个服务器定时器,处理这种非活跃连接,释放连接资源。 定时器处理流程 SIGALARM触发:整个流程开始于一个 SIGALARM 信号&…...

ThinkPHP5 5.0.23 远程代码执行漏洞

目录 1、启动环境 2、漏洞利用 3、更改传参方式 4、修改参数 5、发送数据 1、启动环境 docker-compose up -d 2、访问靶机ip端口号8080 2、漏洞利用 使用burpsuite抓包软件抓包 3、更改传参方式 将 GET传参改为POST传参 4、修改参数 url参数 /index.php?scaptcha post参…...

C++鼠标键盘操作自动化

C鼠标键盘操作自动化 #pragma once #include <Windows.h> enum KEYS{A 65,W87,S83,D68,SHIFTVK_LSHIFT,ALT18,Tilde 126,//~TABVK_TAB,B66,SPACEVK_SPACE,ESCVK_ESCAPE,Q81 }; enum MOUSE {ML,MW,MR//左&#xff0c;中&#xff0c;右 }; class simulator//模拟器 { pu…...

多个主流Python GUI库全面解析,助你用Python轻松构建精美界面

Python 作为一门易学易用的编程语言&#xff0c;在各个领域都拥有广泛的应用。而 GUI (Graphical User Interface) 编程更是让 Python 变得更加灵活&#xff0c;可以帮助我们创建各种各样的桌面应用&#xff0c;为用户提供直观的交互体验。本文将介绍几个Python GUI 编程中常用…...

Kotlin学习-01创建kotlin学习

安装idea https://www.jetbrains.com/zh-cn/ 创建项目 选择kotlin 修改Main.kt fun main() {print("Hello World!") }运行...

cv_unet_image-colorization模型压缩与量化:面向移动端的部署优化

cv_unet_image-colorization模型压缩与量化&#xff1a;面向移动端的部署优化 想把那个能把黑白照片变彩色的AI模型塞进手机里&#xff1f;这听起来挺酷&#xff0c;但实际操作起来&#xff0c;你会发现它又大又慢&#xff0c;手机根本跑不动。这就像你想把一台高性能游戏电脑…...

别再犯这些错误!英文邮件写作中的常见误区与正确写法

英文邮件写作进阶指南&#xff1a;避开9个致命错误&#xff0c;展现专业沟通力 在跨国商务沟通中&#xff0c;一封得体的英文邮件就像精心设计的数字名片。我曾见证过一位工程师因为邮件中一个称呼错误&#xff0c;导致价值200万美元的合同谈判陷入僵局&#xff1b;也见过实习生…...

从GitHub开源项目到一键部署:OFA模型在星图平台的快速落地

从GitHub开源项目到一键部署&#xff1a;OFA模型在星图平台的快速落地 1. 引言 你是不是也遇到过这种情况&#xff1f;在GitHub上看到一个特别酷的AI项目&#xff0c;比如OFA这种能看图说话、理解多模态信息的模型&#xff0c;心里痒痒的想立刻上手试试。结果呢&#xff0c;光…...

告别设备标识混乱!用uniappx插件Ba-IdCode-U一站式获取OAID/AndroidID/IMEI(附隐私合规指南)

跨平台开发者的设备标识管理实战&#xff1a;从混乱到合规的完整解决方案 每次启动新项目时&#xff0c;开发者们是否总在纠结该用哪种设备标识&#xff1f;OAID、AndroidID还是IMEI&#xff1f;国内厂商的兼容性问题怎么解决&#xff1f;隐私合规的红线又在哪里&#xff1f;本…...

Windows HEIC缩略图终极指南:3分钟让iPhone照片在Windows完美预览

Windows HEIC缩略图终极指南&#xff1a;3分钟让iPhone照片在Windows完美预览 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 你是不是…...

粒子追踪模拟单透镜聚焦comsol ansys Fluent 二维三维模型 仿真模型,文献复现

粒子追踪模拟单透镜聚焦comsol ansys Fluent 二维三维模型 仿真模型&#xff0c;文献复现&#xff0c;热湿传递在实验室折腾粒子追踪仿真的时候&#xff0c;最让人上头的莫过于单透镜聚焦的场景搭建。COMSOL和ANSYS这对冤家各有各的脾气——前者把物理场耦合玩出花&#xff0…...

STM32标准库项目如何用VSCode一键编译下载?详解tasks.json与Makefile的联动配置

STM32标准库项目在VSCode中实现一键编译下载的终极指南 1. 为什么选择VSCode进行STM32开发&#xff1f; 传统嵌入式开发往往依赖于Keil、IAR等商业IDE&#xff0c;但这些工具存在几个明显痛点&#xff1a; 高昂的授权费用&#xff1a;商业IDE的许可证价格让个人开发者和小团队望…...

s2-pro效果展示:会议纪要转语音+重点语句强调式播报实录

s2-pro效果展示&#xff1a;会议纪要转语音重点语句强调式播报实录 1. 专业语音合成新体验 s2-pro作为Fish Audio开源的专业级语音合成模型镜像&#xff0c;正在重新定义文本转语音的标准。不同于常见的聊天式语音工具&#xff0c;它专注于提供高质量的语音合成服务&#xff…...

语音合成延迟优化:IndexTTS-2-LLM网络IO调优实战

语音合成延迟优化&#xff1a;IndexTTS-2-LLM网络IO调优实战 1. 为什么语音合成总在“等”&#xff1f;从用户卡顿说起 你有没有试过在语音合成页面点下“开始合成”&#xff0c;然后盯着进度条数秒——明明只是一句话&#xff0c;却要等3秒、5秒&#xff0c;甚至更久&#x…...

如何使用Rainmeter监控PCIe设备延迟:完整响应时间检测指南

如何使用Rainmeter监控PCIe设备延迟&#xff1a;完整响应时间检测指南 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter是一款强大的Windows桌面自定义工具&#xff0c;不仅能美化…...