[Flask教學] Flask-SQLAlchemy -ORM 一對多關聯篇 (三)

一. 前言

▍關於什麼是 ORM 架構

簡單來說是直接用 Python 的語法對資料庫進行操作,不需要直接寫 SQL 語法,ORM 背後會自動將 Python 代碼轉換成應對的 SQL 語法,再來進行對資料庫的操作。

▍關於 ORM 設定和操作更多內容可參考:

二. ORM關聯:一對多

ORM 一對多關聯

▍定義一對多模型

設定其實很簡單:
Step1. 在一對多的一中設定 db.relationship(…) 關係
Step2. 在一對多的多中設定 db.ForeignKey(…) 關係
就完成囉~

▍舉個簡單的栗子 🌰

首先我們定義了 product、add_to_cart、user 這三個模型

看到上方這一長串代碼先別慌,我們只先單純看 Product 和 AddToCar 這兩個部分,他們的關係為一對多 (表示為一個 Product 可以被多個 AddToCar 包含)

首先 Product (一對多的一) 的部分需要設定 db.relationship() 來讓 SQLAlchemy 知道 Product 和 AddToCar 是有關聯的,而 backref=”product” 中的 product 則像是暗號,未來在讀取 AddToCar 表格時,後面只需像這樣加上 AddToCar.product,就可以輕鬆讀取到 Product 表格內的資料囉!

再來 AddToCar (一對多的多) 的部分需要設定 db.ForeignKey() 來告訴 SQLAlchemy 當兩張表連結時要以什麼為外接的 key。

當 db.relationship() 和 db.ForeignKey() 都設定好後,接下來我們就來測試操作資料庫啦~

▍實作操作一對多資料庫

首先我在在資料庫裡面先存入產品( p1~p3 )和使用者( u1 )的資料

接著利用剛剛存入的資料,來達成使用者 Max 將 p1 產品加入購物車

成功的話,資料庫的 addtocar 表格就會像是這樣~

那我們來對 addtocar 查詢看看

恭喜你已經完成一對多的新增和查詢囉~

最後~推薦 Flask 系列文章:

▍關於 Flask 教學系列目錄:

▍關於 Flask 資料庫 SQLAlchemy 文章:

那麼 [Flask教學] Flask-SQLAlchemy -ORM 一對多關聯篇 (三) 結束囉,感謝收看!

有關 Max行銷誌 的最新文章,都會發佈在 Max行銷誌的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *