fastzdp_sqlmodel 基于SQLModel封装的专用于FastAPI处理MySQL数据库业务的框架

news/2024/9/25 21:29:54/

fastzdp_sqlmodel

基于SQLModel封装的专用于FastAPI处理MySQL数据库业务的框架

Github开源地址:https://github.com/zhangdapeng520/fastzdp_sqlmodel

安装

pip install fastzdp_sqlmodel

使用教程

创建表

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass Hero(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strsecret_name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 删除所有表
SQLModel.metadata.drop_all(engine)# 创建所有表
SQLModel.metadata.create_all(engine)

添加数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)

查询所有数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)
u = User(name="李四", age=24)
fsqlmodel.add(engine, u)# 查询所有数据
users = fsqlmodel.get_all(engine, User)
print(users)

根据字典查询数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)
u = User(name="张三", age=24)
fsqlmodel.add(engine, u)
u = User(name="李四", age=24)
fsqlmodel.add(engine, u)# 查询所有数据
query = {"name": "张三"}
users = fsqlmodel.get_by_dict(engine, User, query)
print(users)

逻辑 or 查询

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)
u = User(name="张三", age=33)
fsqlmodel.add(engine, u)
u = User(name="李四", age=24)
fsqlmodel.add(engine, u)# 查询年龄等于23或者小于10的用户
query = {"age": {">": 23, "<": 10}}
users = fsqlmodel.get_by_dict_or(engine, User, query)
print(users)

逻辑 and 查询

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)
u = User(name="张三", age=33)
fsqlmodel.add(engine, u)
u = User(name="李四", age=24)
fsqlmodel.add(engine, u)# 查询年龄等于20或者小于30的用户
query = {"age": {">": 20, "<": 30}}
users = fsqlmodel.get_by_dict_and(engine, User, query)
print(users)

根据ID查询

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)
u = User(name="张三", age=33)
fsqlmodel.add(engine, u)
u = User(name="李四", age=24)
fsqlmodel.add(engine, u)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)# 查询id为11的数据
u = fsqlmodel.get(engine, User, 11)
print(u)

修改数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)# 修改
update_dict = {"name": "张三333"}
fsqlmodel.update(engine, u, update_dict)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)

根据ID修改数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)# 修改
update_dict = {"name": "张三333"}
fsqlmodel.update_id(engine, User, 1, update_dict)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)

删除数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)# 删除
fsqlmodel.delete(engine, u)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)

根据ID删除数据

from typing import Optional
from sqlmodel import Field, SQLModel
import fastzdp_sqlmodel as fsqlmodelclass User(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)name: strage: Optional[int] = None# 创建数据库引擎
engine = fsqlmodel.get_engine(database="fastzdp_sqlmodel")# 初始化表格
fsqlmodel.init_table(engine)# 创建数据
u = User(name="张三", age=23)
fsqlmodel.add(engine, u)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)# 删除
fsqlmodel.delete_id(engine, User, 1)# 查询id为1的数据
u = fsqlmodel.get(engine, User, 1)
print(u)

版本历史

v0.1.0

  • 常见的增删改查功能

说明

如果你对Python感兴趣,需要一对一的指导,欢迎私信我,包教会。


http://www.ppmy.cn/news/1510422.html

相关文章

【网格图dp】力扣931. 下降路径最小和

给你一个 n x n 的 方形 整数数组 matrix &#xff0c;请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列&#xff08;即位于正下方或者沿对角…

鸿蒙开发Location Kit(位置服务)如何设置

鸿蒙Location Kit 是一个强大的位置服务工具包&#xff0c;允许开发者在应用程序中集成精确的定位功能。Location Kit 提供了多种定位模式&#xff0c;支持室内和室外定位&#xff0c;并结合了GPS、Wi-Fi、蓝牙和基站等多种定位技术。 核心功能 精确定位&#xff1a;支持高精…

AI+仿真,助力工业智能化变革:面向仿真工程师的机器学习工具

仿真AI &#xff1f; 企业的仿真工程师大部分时间都是在面对相似的模型。例如空调管路CFD&#xff0c;汽车保险杠CAE的仿真工作&#xff0c;通过DOE设计迭代&#xff0c;不断的优化尺寸参数&#xff0c;产品外形&#xff0c;从而使得管路流动阻力减小&#xff0c;风速均匀性提高…

昂科烧录器支持PAI-IC澎湃微电子的32位微控制器PT32L031K6T6

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中PAI-IC澎湃微电子的32位微控制器PT32L031K6T6已经被昂科的通用烧录平台AP8000所支持。 PT32L031K6T6是基于Cortex-M0内核的一款32位高性能微控制器&#xff0c;支持工作电压 1…

如何制作优秀的年终总结PPT?

制作优秀的年终总结PPT&#xff0c;是每位职场人士在年底时的一项重要任务。 一个优秀的年终总结PPT不仅能够清晰地展示你过去一年的工作成果&#xff0c;还能让领导对你的工作能力和态度留下深刻印象。 下面&#xff0c;我将从几个方面详细讲解如何制作这样的PPT&#xff0c…

AI作画提示词(Prompts)工程:技巧与最佳实践

文章目录 AI作画提示词(Prompts)工程&#xff1a;技巧与最佳实践一、提示词工程概述二、技巧与最佳实践1. 明确和具体的描述2. 使用上下文3. 指定艺术风格4. 使用关键词5. 适当的限制和优先级6. 实验和优化示例提示词 三、结论 AI作画提示词(Prompts)工程&#xff1a;技巧与最佳…

网络协议九 应用层 HTTPS

一 什么是 HTTPS 前面我们看到HTTP 有很多安全问题&#xff0c;因此引出了 对称加密 和 不对称加密。 那么这个对称加密和不对称加密&#xff0c;我们怎么和HTTP结合起来呢&#xff1f;HTTPS 就是弄好的 HTTP 和 加密结合的协议。 通过HTTP加密后的数据&#xff0c;整个传输过…

lnmp学习之路

编程小白如何成为大神&#xff1f;大学新生的最佳入门攻略 编程已成为当代大学生的必备技能&#xff0c;但面对众多编程语言和学习资源&#xff0c;新生们常常感到迷茫。如何选择适合自己的编程语言&#xff1f;如何制定有效的学习计划&#xff1f;如何避免常见的学习陷阱&…