資料庫表是一個二維表,包含多行多列。把一個表的内容用Python的資料結構表示出來的話,可以用一個list表示多行,list的每一個元素是tuple,表示一行記錄,比如,包含id和name的user表。[('1','A'),('2','B'),('3','C')] Python的DB-API傳回的資料結構就是像上面這樣表示的。 但是用tuple表示一行很難看出表的結構。如果把一個tuple用class執行個體來表示,就可以更容易地看出表的結構來: class User(object): def init(self,id,name): self.id=id self.name=name [ User('1','A'), User('2','B'), User('3','C') ] 這就是傳說中的ORM技術:Object-Relational Mapping,把關系資料庫的表結構映射到對象上。是不是很簡單? 但是由誰來做這個轉換呢?是以ORM架構應運而生。 在Python中,最有名的ORM架構是SQLAlchemy。我們來看看SQLAlchemy的用法。 第一步,導入SQLAlchemy,并初始化DBSession。 create_engine()用來初始化資料庫連接配接。SQLAlchemy用一個字元串表示連接配接資訊: '資料庫類型+資料庫驅動名稱://使用者名:密碼@機器位址:端口号/資料庫名' 你隻需要根據需要替換掉使用者名、密碼等資訊即可。 下面,我們看看如何向資料庫表中添加一行記錄。 由于有了ORM,我們向資料庫表中添加一行記錄,可以視為添加一個User對象。 可見,關鍵是擷取session,然後把對象添加到session,最後送出并關閉。Session對象可視為目前資料庫連接配接。 如何從資料庫表中查詢資料呢?有了ORM,查詢出來的可以不再是tuple,而是User對象。SQLAlchemy提供的查詢接口。 可見,ORM就是把資料庫表的行與相應的對象建立關聯,互相轉換。 由于關系資料庫的多個表還可以用外鍵實作一對多、多對多等關聯,相應地,ORM架構也可以提供兩個對象之間的一對多、多對多等功能。 當我們查詢一個User對象時,該對象的books屬性将傳回一個包含若幹個Book對象的list。 小結 ORM架構的作用就是把資料庫表的一行記錄與一個對象互相做自動轉換。 正确使用ORM的前提是了解關系資料庫的原理。
版權聲明:本文為CSDN部落客「weixin_34326429」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34326429/article/details/92368036