wordpress无域名建站,董家渡街道网站建设,企业软件下载,wordpress ftp 设置方法说明
经过fastzdp_login的整合#xff0c;我们发现#xff0c;fastzdp_sqlmodel还可以继续封装两个便捷的方法。
get_first#xff1a;获取查询结果集中的第一条数据is_exitsts#xff1a;判断数据是否已存在
封装get_first方法
def get_first(engine, model, query_di…说明
经过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: 存在数据返回模型对象否则返回Nonedata 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, tableTrue):id: Optional[int] Field(defaultNone, primary_keyTrue)name: strage: Optional[int] None# 创建数据库引擎
engine fs.get_engine(databasefastzdp_sqlmodel)# 初始化表格
fs.init_table(engine)# 创建数据
fs.add(engine, User(name张三1, age23))
fs.add(engine, User(name张三2, age23))
fs.add(engine, User(name张三3, age23))# 查询第一条数据
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, tableTrue):id: Optional[int] Field(defaultNone, primary_keyTrue)name: strage: Optional[int] None# 创建数据库引擎
engine fs.get_engine(databasefastzdp_sqlmodel)# 初始化表格
fs.init_table(engine)# 创建数据
fs.add(engine, User(name张三1, age23))
fs.add(engine, User(name张三2, age23))
fs.add(engine, User(name张三3, age23))# 判断是否存在
print(fs.is_exists(engine, User, {name: 张三1}))
print(fs.is_exists(engine, User, {name: 张三11}))
执行结果如下
从执行结果来看是基本符合预期的。
总结
本教程主要记录了get_first和is_exists这两个方法的封装过程。
如果大家需要FastAPI零基础到项目实战的全套录播课程或者Python一对一的私教课指导欢迎留言或者私信。