Flask-SQLAlchemy - 不使用外键连表查询。记得常回来看我

前言

        相比于 Django 的 ORM ,SQLAlchemy "不依靠外键进行跨表联查" 的解决方案就比较多。

        没啥好说的,只能怪自己学艺不精..  _(:з」∠)_ 

解决办法

query = database.session().query(models.A, models.B)
query = query.join(models.B, models.B.UUID == models.A.UUID).filter(models.a.UUID == '2018061520180621').filter(models.b.xx= 'haha')
# 第二个filter可以继续过滤、join 或者删掉..
data = query.all() >>> print ( type(data) ) <class 'sqlalchemy.util._collections.result'> # 然而: # 列表中的项并不是标准的 Python tuple,<class 'sqlalchemy.util._collections.result'>,它是一个 AbstractKeyedTuple 对象,拥有一个 keys() 方法, # 这样可以很容易将其转换成 dict : list = [dict(zip(result.keys(), result)) for result in data] print(jsonify(list))

# 还可以在 filter 得到结果后继续加 join 进行多表联查

博客搬运地址

  1. Flask-SQLAlchemy 操作 - 连表查询 - 筛选字段
  2. flask sqlalchemy非外键连接两个表
  3. Python sqlalchemy 多表查询 没有外键
  4. 在 Flask-SQLAlchemy 中联表查询 - (目测是真正的大佬)

猜你喜欢

转载自www.cnblogs.com/clement-jiao/p/10010497.html