使用SQLAlchemy查询数据
2022/8/9 2:22:49
本文主要是介绍使用SQLAlchemy查询数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
释解:
# *maps为序列解包
# add_entity多表关系查询使用,在结果集增加关联表的实体类数据,如果后续不使用关联表的数据,则可不进行定义
# getattr获取对象属性值信息,适合**kwargs为不定长参数时去获取实体类的对象,以及属性值同传入的参数进行校验 # filter多参数时建议使用and,格式:filter(and_(*maps, user.delete == "N")) # func.count,使用数据统计类时,用法为func.sum,func.count,记得尾部带上scalar()
def queryUserRecord(pagNo, pageSize, **kwargs): maps = [] pagNo = pageSize * (pagNo - 1) user= User merchant = Merchant for i in kwargs.keys(): if kwargs[i]: # getattr获取对象属性值信息,getattr(对象,获取i的属性值) == 属性值 maps.append(getattr(user, i) == kwargs[i]) try: item_filter = session.query(user).join(merchant,user.application_name==merchant.app_name).\ add_entity(merchant).order_by(user.create_time.desc()).\ filter(and_(*maps, user.delete == "N")).offset(pagNo).limit(pageSize).all() totalRows = session.query(func.count(user.id)).filter(and_(*maps, user.delete == "N")).scalar() except Exception as e: session.close() finally: session.close() test_item = [] for i in item_filter: user= to_json(i[0]) merchant= to_json(i[1]) user["deploy_link"] = merchant["deploy_link"] test_item.append(user) dict_res = {"totalRows": totalRows, "list": test_item} session.close() print("maps",maps) return dict_res if __name__ == '__main__': print(queryUserRecord(1,100,serviceGroup=45))
这篇关于使用SQLAlchemy查询数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享
- 2024-04-14result 成功怎么写-icode9专业技术文章分享
- 2024-04-14stopped 状态设置为变量,由外部传递进来-icode9专业技术文章分享
- 2024-04-14为什么ansible执行远程脚本需要放到后台-icode9专业技术文章分享
- 2024-04-14shell 正则判断字符串内是否含有th-icode9专业技术文章分享