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

ops/2024/9/23 10:50:35/

创建模型

python">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

创建表

python">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)

初始化表

python">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)

添加数据

python">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)

查询所有数据

python">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)

根据字典查询数据

python">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 查询

python">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 查询

python">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 查询

python">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)

更新数据

python">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 更新数据

python">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)

删除数据

python">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 删除数据

python">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)

根据分页查询数据

python">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)

获取第一条数据

python">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)

判断数据是否存在

python">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"}))

http://www.ppmy.cn/ops/114732.html

相关文章

监控易:部委-省-市-县多级架构的集中智能运维解决方案

在当今的信息化时代&#xff0c;随着技术的不断发展和业务的不断扩展&#xff0c;运维管理面临着越来越多的挑战。特别是对于采用部委-省-市-县多级架构的大型组织来说&#xff0c;如何构建一个高效、灵活的运维体系显得尤为重要。本文将介绍如何利用监控易产品的功能和特性&am…

【学习笔记】SSL/TLS安全机制之CAA

1、概念界定 CAA全称Certificate Authority Authorization&#xff0c;即证书颁发机构授权&#xff0c;每个CA都能给任何网站签发证书。 2、CAA要解决的问题 例如&#xff0c;蓝色网站有一张橙色CA颁发的证书&#xff0c;我们也知道还有许多其他的CA&#xff1b;中间人可以说服…

C++——已知数组a[6]={1,3,5,7,9};输入一个数值,要求按照现有排序规律将它放入数组当中。

没注释的源代码 #include <iostream> using namespace std; int main() { int a[6]{1,3,5,7,9}; int n,i,j; cout<<"请输入一个数值&#xff1a;"; cin>>n; for(int i0;i<4;i) { if(n<a[i]) { …

4、存储器管理

存储器层次结构 1、存储器管理主要是内存管理。几乎每一条指令都涉及存储器访问&#xff0c;所以需要存储器速度和处理机运行速度相匹配。 2、存储器分为寄存器、主存(高速缓存、主存储器和磁盘缓存)和辅存(固定磁盘和可移动存储介质)。越靠近cpu访问速度越快、越小。 3、进…

C++:使用tinyxml2获取节点下元素

场景 假设有以下 XML 文档&#xff1a; <?xml version"1.0"?> <Root><Kind>ExampleText</Kind> </Root>以下是如何使用这行代码来获取 <Kind> 元素的文本内容&#xff1a; #include "tinyxml2.h" #include <i…

Apache的ab压力测试工具与性能监控

【图书介绍】《软件性能测试、分析与调优实践之路&#xff08;第2版&#xff09;》_软件性能测试分析与调优实践之路-CSDN博客《软件性能测试、分析与调优实践之路&#xff08;第2版&#xff09;》(张永清)【摘要 书评 试读】- 京东图书 (jd.com) Apache的ab压力测试工具 A…

如何在C++中实现RDP协议的功能数据处理?

在C++中实现RDP协议的功能数据处理,首先需要深入了解RDP协议的规范,特别是与功能数据处理相关的部分,如屏幕更新、输入事件(键盘、鼠标)、文件传输等PDU(协议数据单元)的格式和处理逻辑。以下是一个简化的步骤和概念指导,用于在C++中处理RDP协议的功能数据: 1. 解析P…

使用Python免费将pdf转为docx

刚刚想将pdf转换为docx文档时&#xff0c;居然要收费 还好我学过编程&#xff0c;这不得露两手 将pdf 转换为 docx 文档 的操作步骤 我这里使用的是Python语言 &#xff08;1&#xff09;在终端上安装 pdf2docx 是一个 Python 库&#xff0c;它可以将 PDF 文件转换为 Word (…