ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

使用SQLAlchemy查询数据

2022-08-08 19:35:29  阅读:849  来源: 互联网

标签:merchant SQLAlchemy 查询 filter maps session user kwargs 数据


释解:
# *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))

 

标签:merchant,SQLAlchemy,查询,filter,maps,session,user,kwargs,数据
来源: https://www.cnblogs.com/grapefruit0201/p/16563132.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有