創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)python有哪些 orm框架,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
ORM概念
ORM(Object Ralational Mapping,對(duì)象關(guān)系映射)用來(lái)把對(duì)象模型表示的對(duì)象映射到基于SQL的關(guān)系模型數(shù)據(jù)庫(kù)結(jié)構(gòu)中去。這樣,我們?cè)诰唧w的操作實(shí)體對(duì)象的時(shí)候,就不需要再去和復(fù)雜的SQL語(yǔ)句打交道,只需簡(jiǎn)單的操作實(shí)體對(duì)象的屬性和方法。ORM技術(shù)是在對(duì)象和關(guān)系之間提供了一條橋梁,前臺(tái)的對(duì)象型數(shù)據(jù)和數(shù)據(jù)庫(kù)中的關(guān)系型的數(shù)據(jù)通過(guò)這個(gè)橋梁來(lái)相互轉(zhuǎn)化 。
Python中常用的ORM
SQLObject
SQLObject是一種流行的對(duì)象關(guān)系管理器,用于為數(shù)據(jù)庫(kù)提供對(duì)象接口,其中表為類,行為實(shí)例,列為屬性。
SQLObject包含一個(gè)基于Python對(duì)象的查詢語(yǔ)言,使SQL更抽象,并為應(yīng)用程序提供了大量的數(shù)據(jù)庫(kù)獨(dú)立性。
優(yōu)點(diǎn):
采用了易懂的ActiveRecord模式
一個(gè)相對(duì)較小的代碼庫(kù)
缺點(diǎn):
方法和類的命名遵循了Java的小駝峰風(fēng)格
不支持?jǐn)?shù)據(jù)庫(kù)session隔離工作單元
Storm
Storm是一個(gè)介于單個(gè)或多個(gè)數(shù)據(jù)庫(kù)與Python之間映射對(duì)象的Python ORM。為了支持動(dòng)態(tài)存儲(chǔ)和取回對(duì)象信息,它允許開(kāi)發(fā)者構(gòu)建跨數(shù)據(jù)表的復(fù)雜查詢。Stom中table class不需要是框架特定基類的子類 。每個(gè)table class是sqlobject.SQLObject的子類。
優(yōu)點(diǎn):
清爽輕量的API,短學(xué)習(xí)曲線和長(zhǎng)期可維護(hù)性
不需要特殊的類構(gòu)造函數(shù),也沒(méi)有必要的基類
缺點(diǎn):
迫使程序員手工寫表格創(chuàng)建的DDL語(yǔ)句,而不是從模型類自動(dòng)派生
Storm的貢獻(xiàn)者必須把他們的貢獻(xiàn)的版權(quán)給Canonical公司
Django's ORM
因?yàn)镈jango的ORM 是緊嵌到web框架的,所以就算可以也不推薦,在一個(gè)獨(dú)立的非Django的Python項(xiàng)目中使用它的ORM。
Django,一個(gè)最流行的Python web框架, 有它獨(dú)有的ORM。 相比 SQLAlchemy, Django的ORM更吻合于直接操作SQL對(duì)象,操作暴露了簡(jiǎn)單直接映射數(shù)據(jù)表和Python類的SQL對(duì)象 。
優(yōu)點(diǎn):
易用,學(xué)習(xí)曲線短
和Django緊密集合,用Django時(shí)使用約定俗成的方法去操作數(shù)據(jù)庫(kù)
缺點(diǎn):
不好處理復(fù)雜的查詢,強(qiáng)制開(kāi)發(fā)者回到原生SQL
緊密和Django集成,使得在Django環(huán)境外很難使用
peewee
優(yōu)點(diǎn):
Django式的API,使其易用
輕量實(shí)現(xiàn),很容易和任意web框架集成
缺點(diǎn):
不支持自動(dòng)化 schema 遷移
多對(duì)多查詢寫起來(lái)不直觀
SQLAlchemy
SQLAlchemy采用了數(shù)據(jù)映射模式,其工作單元主要使得有必要限制所有的數(shù)據(jù)庫(kù)操作代碼到一個(gè)特定的數(shù)據(jù)庫(kù)session,在該session中控制每個(gè)對(duì)象的生命周期 。
優(yōu)點(diǎn):
企業(yè)級(jí)API,使得代碼有健壯性和適應(yīng)性
靈活的設(shè)計(jì),使得能輕松寫復(fù)雜查詢
缺點(diǎn):
工作單元概念不常見(jiàn)
重量級(jí)API,導(dǎo)致長(zhǎng)學(xué)習(xí)曲線
總結(jié)
相比其他的ORM,SQLAlchemy意味著,無(wú)論你何時(shí)寫SQLAlchemy代碼, 都專注于工作單元的前沿概念 。DB Session的概念可能最初很難理解和正確使用,但是后來(lái)你會(huì)欣賞這額外的復(fù)雜性,這讓意外的時(shí)序提交相關(guān)的數(shù)據(jù)庫(kù)bug減少到0。在SQLAlchemy中處理多數(shù)據(jù)庫(kù)是棘手的,因?yàn)槊總€(gè)DB session都限定了一個(gè)數(shù)據(jù)庫(kù)連接。但是,這種類型的限制實(shí)際上是好事, 因?yàn)檫@樣強(qiáng)制你絞盡腦汁去想在多個(gè)數(shù)據(jù)庫(kù)之間的交互, 從而使得數(shù)據(jù)庫(kù)交互代碼很容易調(diào)試。
上述就是小編為大家分享的python有哪些 orm框架了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
新聞標(biāo)題:python有哪些orm框架-創(chuàng)新互聯(lián)
URL鏈接:http://newbst.com/article4/dgioie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、ChatGPT、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容