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

Python国产新 ORM 框架 fastzdp_sqlmodel 快速入门教程

创建模型

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass Hero(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strsecret_name: strage: Optional[int] = None

创建表

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass Hero(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strsecret_name: strage: Optional[int] = Noneengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
SQLModel.metadata.drop_all(engine)
SQLModel.metadata.create_all(engine)

初始化表

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass Hero(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strsecret_name: strage: Optional[int] = Noneengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)

添加数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)u = User(name="张三")
fasm.add(engine, u)

查询所有数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三"))
fasm.add(engine, User(name="李四"))users = fasm.get_all(engine,User)
print(users)

根据字典查询数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三"))
fasm.add(engine, User(name="李四"))query = {"name":"张三"}
users = fasm.get_by_dict(engine,User, query)
print(users)

根据字典实现 or 查询

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三"))
fasm.add(engine, User(name="李四"))query = {"name": {"=": "张三", "==": "李四"}}
users = fasm.get_by_dict_or(engine, User, query)
print(users)

根据字典实现 and 查询

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))query = {"age": {">": 30, "<": 40}}
users = fasm.get_by_dict_and(engine, User, query)
print(users)

根据ID 查询

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))u = fasm.get(engine,User,1)
print(u)

更新数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))u = fasm.get(engine, User, 1)
print("xxxxxx", u)data = {"name": "张三 333"}
fasm.update(engine, u, data)u = fasm.get(engine, User, 1)
print("=======", u)

根据 ID 更新数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))data = {"name": "张三 333"}
fasm.update_id(engine, User,1, data)u = fasm.get(engine, User, 1)
print("=======", u)

删除数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))u = fasm.get(engine,User,1)
fasm.delete(engine,u)

根据 ID 删除数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))fasm.delete_id(engine,User,1)

根据分页查询数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))
fasm.add(engine, User(name="王五", age=33))users = fasm. get_page(engine,User,page=1,size=2)
print(users)

获取第一条数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))
fasm.add(engine, User(name="王五", age=33))u = fasm.get_first(engine,User,{"name":"张三"})
print(u)

判断数据是否存在

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fasmclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: intengine = fasm.get_engine(password="zhangdapeng520", database="fastzdp_sqlmodel", echo=True)
fasm.init_table(engine)fasm.add(engine, User(name="张三", age=22))
fasm.add(engine, User(name="李四", age=33))
fasm.add(engine, User(name="王五", age=33))print(fasm.is_exists(engine,User,{"name":"张三"}))
print(fasm.is_exists(engine,User,{"name":"张三 33"}))

相关文章:

Python国产新 ORM 框架 fastzdp_sqlmodel 快速入门教程

创建模型 from typing import Optional from sqlmodel import Field, SQLModel import fastzdp_sqlmodel as fasmclass Hero(SQLModel, tableTrue):id: Optional[int] Field(defaultNone, primary_keyTrue)name: strsecret_name: strage: Optional[int] None创建表 from ty…...

面试速通宝典——3

51. 野指针和内存泄漏是什么&#xff1f;如何避免&#xff1f; ‌‌‌‌  内存泄漏&#xff1a;是指程序中以动态分配的堆内存由于某种原因程序未释放或无法释放&#xff0c;造成系统内存的浪费&#xff0c;导致程序运行速度减慢甚至系统崩溃等严重后果。 ‌‌‌‌  避免&…...

每天一个数据分析题(四百七十三)- 元数据

下列哪些元素属于元数据内容&#xff1f; &#xff08;&#xff09; A. 名称 B. 长度 C. 类型 D. 取值范围 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python&#xff0c;SQL&#xff0c;统计学…...

产品经理面试整理-练习常见面试问题

练习常见面试问题是准备产品经理面试的重要环节。掌握这些问题的回答思路,不仅能帮助你在面试中更加自信,还能展示你对产品管理的深入理解。以下是一些常见的产品经理面试问题,以及如何高效准备这些问题的指南。 1. 常见面试问题及回答思路 1.1 你如何定义产品成功? ●...

一步到位的智慧:BI可视化大屏在复杂环境中如何精准拾取目标

在可视化设计器中实现良好的组件拾取功能&#xff0c;是提升用户体验和设计效率的关键。它们不仅能够提升用户体验和操作效率&#xff0c;还能够增强设计的灵活性和精度&#xff0c;促进设计创新&#xff0c;并最终提升设计的质量和价值。因此&#xff0c;在可视化设计过程中&a…...

前端开发迎来新机会,全栈转型就靠这个!

在如今的开发世界&#xff0c;全栈开发者已成为许多前端开发者的新目标。随着技术的不断演进&#xff0c;前端不再局限于写页面和样式&#xff0c;而是逐渐向后端延伸&#xff0c;甚至触及数据库和云服务。如果你想在职业道路上更进一步&#xff0c;向全栈开发者靠拢&#xff0…...

关于less的基本使用

1、介绍及概述 1.1、解释 less 是方便开发人员书写CSS的一门预处理语言。浏览器只认识html /css /js格式的文件&#xff0c;所以直接引入.less文件&#xff0c;没有任何的效果&#xff0c;需要把less文件转换成css文件 1.2、概述 CSS弊端&#xff1a; 没有逻辑性、变量、函…...

python 将 aac 转为 mp3,保持原有目录结构

需要提前安装 FFmpeg import os import subprocess import time from concurrent.futures import ThreadPoolExecutor, as_completeddef convert_file(input_path, output_path):command [ffmpeg,-y, # 自动覆盖现有文件-i, input_path,-acodec, libmp3lame,-b:a, 192k,outpu…...

考研数据结构——C语言实现折半查找

首先定义了一个有序数组a&#xff0c;然后计算出数组的长度n。接着定义了一个要查找的元素x&#xff0c;值为79。binarySearch函数实现了二分查找算法&#xff0c;它接受数组、左右边界和目标值作为参数&#xff0c;通过不断缩小搜索范围来查找目标值。如果找到了目标值&#x…...

【游戏引擎】C++自制游戏引擎 Lunar Game Engine

Lunar-Game Engine 仓库位置 Lunar Game Engine Lunar GameEngie是几个渣渣业余写的基于C的游戏引擎。 相比于比较成熟的引擎&#xff0c;该引擎的特点如下 结构,标准混乱bug众多根本不能用&#xff01; 最后的最后 To The Moon and Beyond! 简介 Luna Engine基于 C 和…...

使用【Sa-Token】实现Http Basic 认证

使用Sa-Token开源架构快速实现Http Basic 认证&#xff0c;如上图 1、springboot环境下直接添加starter即可 <!-- Sa-Token 权限认证&#xff0c;在线文档&#xff1a;https://sa-token.cc --> <dependency><groupId>cn.dev33</groupId><artifactI…...

layui table中的checkbox禁用问题

在项目开发中遇到table框已经选择过的数据不支持二次选择从而要禁用复选框不许选中&#xff0c;但会导致复选框全选时layui的table组件源码中赋值时是根据全部复选框的下标顺序来赋值到数组中返回给你&#xff0c;这样已被禁用复选框的数据也会被push到数组中导致数据错乱&…...

102.SAPUI5 sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问失败

目录 原因 解决办法 1.修改谷歌浏览器的setting 2.在tomcat中配置https访问 参考 使用SAPUI5的sap.ndc.BarcodeScannerButton调用摄像头时&#xff0c;localhost访问正常&#xff0c;使用IP访问时&#xff0c;一直打不开摄像头&#xff0c;提示getUserMedia()问题。 原因…...

20240923软考架构-------软考186-190答案解析

每日打卡题186-190答案 186、Mesh 化架构是把&#xff08; &#xff09;从业务进程中分离&#xff0c;分离后在业务进程中只保留很“薄”的Client部分&#xff0c;Client 通常很少变化&#xff0c;只负责与 Mesh进程通信&#xff0c;原来需要在SDK中处理的流量控制、安全等逻辑…...

基于Spring Boot的宠物咖啡馆平台【附源码】

基于Spring Boot的宠物咖啡馆平台&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 …...

C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍

文章目录 前言一、list二、list类的初始化和尾插三、list的迭代器的基本实现四、list的完整实现五、测试六、整个list类总结 前言 C模拟实现list&#xff1a;list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍 一、list list本…...

Offer60:n个骰子的点数

题目&#xff1a;把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 分析:要解决这个问题&#xff0c;我们需要先统计出每个点数出现的次数&#xff0c;然后把每个点数出现的次数除以,就能求出每个点数出现的概率了。我们…...

几种常见的索引类型扫描

第一种&#xff1a;index unique scan 索引唯一扫描&#xff0c;当可以优化器发现某个查询条件可以利用到主键、唯一键、具有外键约束的列&#xff0c;或者只是访问其中某行索引所在的数据的时候&#xff0c;优化器会选择这种扫描类型。第二种&#xff1a;index range scan 索…...

苹果CMS插件:优化蜘蛛访问内容,提升百度收录率

确保蜘蛛抓取原始内容 专为苹果CMS设计的广告管理插件&#xff0c;能够智能识别搜索引擎蜘蛛与普通访客&#xff0c;确保蜘蛛访问时展示原始内容&#xff0c;从而提升被百度等搜索引擎收录的几率。 广告显示提升收益 对于普通访客&#xff0c;该插件则优先显示广告内容&#…...

后端开发刷题 | 没有重复项数字的全排列

描述 给出一组数字&#xff0c;返回该组数字的所有排列 例如&#xff1a; [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. &#xff08;以数字在数组中的位置靠前为优先级&#xff0c;按字典序排列输出。&#xff09; 数据范围&#xff1a;数字…...

Perplexity搜索效率提升73%的6个隐藏技巧:资深AI分析师亲测有效

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity搜索效率提升73%的底层动因解析 Perplexity 作为新一代语义优先的AI搜索引擎&#xff0c;其搜索延迟中位数从 1.84s 降至 0.50s&#xff08;实测提升 73%&#xff09;&#xff0c;这一突破并…...

来姨妈不舒适有没有补充营养的经期产品推荐?ULOV(最美是你)选购指南

# 来姨妈不舒适有没有补充营养的经期产品推荐&#xff1f;ULOV&#xff08;最美是你&#xff09;选购指南来姨妈不舒适有没有补充营养的经期产品推荐&#xff1f;这是14-40岁女性高频搜索的真实困惑。传统红糖水、热饮或普通果汁难以兼顾舒缓不适与科学补养&#xff0c;而市面多…...

伊犁盛夏赴花海,霍城紫浪漫卷天山脚下

在新疆伊犁哈萨克自治州霍城县&#xff0c;天山北麓的缓坡地带铺展着国内规模最大的薰衣草种植区。每年夏季&#xff0c;这片土地被大面积的薰衣草覆盖&#xff0c;呈现出连绵的紫色景观。霍城与法国普罗旺斯、日本北海道富良野地处相近纬度&#xff0c;气候条件适宜薰衣草生长…...

介绍iG化学以及iG-Chemistry会学到哪些章节和知识点?

IGCSE化学是许多国际高中生接触化学知识体系的入门课程&#xff0c;它的内容范围广&#xff0c;旨在帮你建立起宏观物质、微观粒子与化学变化之间的基本联系。 IGCSE化学通常遵循两类主流大纲&#xff0c;以下是它们核心知识点的对比&#xff1a; ✍️ 对比详解章节/分类核心学…...

用Logisim从零搭建一个8位求补器:手把手教你理解补码的硬件实现

用Logisim从零搭建一个8位求补器&#xff1a;手把手教你理解补码的硬件实现 数字电路设计中最精妙的概念之一&#xff0c;莫过于补码表示法。它不仅解决了计算机中正负数的统一表示问题&#xff0c;还让加减法运算可以用同一套电路完成。但你是否好奇过&#xff0c;这个看似简单…...

别再只画折线图了!用Python的pyts库5分钟搞定时间序列的递归图(Recurrence Plot)可视化

解锁时间序列分析新维度&#xff1a;用Python高效构建递归图 时间序列分析早已超越了简单的折线图时代。当我们需要挖掘数据中隐藏的周期性、突变点或非线性特征时&#xff0c;传统可视化方法往往力不从心。递归图(Recurrence Plot)作为一种强大的分析工具&#xff0c;能够将时…...

Pwn题卡壳了?用LibcSearcher快速定位libc版本,附Python3安装与实战避坑指南

Pwn题卡壳了&#xff1f;用LibcSearcher快速定位libc版本&#xff0c;附Python3安装与实战避坑指南 在CTF竞赛和二进制安全研究中&#xff0c;Pwn题往往是最具挑战性的环节之一。当你在解题过程中成功泄露了某个libc函数的地址&#xff0c;却因为不知道目标系统的libc版本而无法…...

B站缓存视频无损转换终极指南:3步快速上手m4s-converter开源工具

B站缓存视频无损转换终极指南&#xff1a;3步快速上手m4s-converter开源工具 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站缓存视…...

别再纠结选哪种了!一文讲透无人机测深三剑客(激光雷达/测深仪/GPR)的实战选型指南

无人机测深技术三剑客&#xff1a;激光雷达、测深仪与探地雷达的深度选型指南 当无人机遇上水深测量&#xff0c;技术选型往往成为项目成败的关键。在河道整治、水库清淤、海岸线测绘等场景中&#xff0c;工程师们常面临一个核心难题&#xff1a;如何在激光雷达、测深仪和探地雷…...

工业 DC-DC 标准封装设计探讨 钡特电源 DB2-12D15D 与金升阳 A1215D-2WR3 工业模块电源盘点

在工业控制与嵌入式系统设计中&#xff0c;12V 输入转 15V 输出的 2W 隔离供电方案&#xff0c;是模拟电路、信号调理模块的核心供电选择。伴随国内电子制造技术持续突破&#xff0c;国产直流电源模块在标准化封装、电气性能稳定性上不断贴合行业通用规范&#xff0c;成为推动国…...