1. 程式人生 > >Flask-SQLAlchemy - 不使用外來鍵連表查詢。記得常回來看我

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 中聯表查詢 - (目測是真正的大佬)