fastapi使用sqlalchemy进行动态多条件查询


测试开发 / / 84 字 / 455 阅

fastapi没有类似flask的sqlalchemy扩展,所以只能自行实现。

现有一个列表,包含姓名、电话、地址、手机号码、状态等等许多字段,用户可能通过任意字段组合来查询结果。
其实现方法是对前端传过来的非空键来进行字符串反射,如下:

def get_company(db: Session, param: CompanyQuery):
  filters: list = []
  query_dict: dict = param.dict()
  for p in query_dict:
      if query_dict[p] and type(query_dict[p]) is not int:
          filters.append(getattr(Company, p) == query_dict[p])
  return db.query(Company).filter(*filters).paginate(param.page, param.limit, False)
EOF
发表评论 (暂无评论)
OωO
开启隐私评论,您的评论仅作者和评论双方可见