創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都酒樓設計等網(wǎng)站設計、網(wǎng)絡營銷推廣解決方案、網(wǎng)站設計等建站排名服務。這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)python有哪些 orm框架,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
ORM概念
ORM(Object Ralational Mapping,對象關(guān)系映射)用來把對象模型表示的對象映射到基于SQL的關(guān)系模型數(shù)據(jù)庫結(jié)構(gòu)中去。這樣,我們在具體的操作實體對象的時候,就不需要再去和復雜的SQL語句打交道,只需簡單的操作實體對象的屬性和方法。ORM技術(shù)是在對象和關(guān)系之間提供了一條橋梁,前臺的對象型數(shù)據(jù)和數(shù)據(jù)庫中的關(guān)系型的數(shù)據(jù)通過這個橋梁來相互轉(zhuǎn)化 。
Python中常用的ORM
SQLObject
SQLObject是一種流行的對象關(guān)系管理器,用于為數(shù)據(jù)庫提供對象接口,其中表為類,行為實例,列為屬性。
SQLObject包含一個基于Python對象的查詢語言,使SQL更抽象,并為應用程序提供了大量的數(shù)據(jù)庫獨立性。
優(yōu)點:
采用了易懂的ActiveRecord模式
一個相對較小的代碼庫
缺點:
方法和類的命名遵循了Java的小駝峰風格
不支持數(shù)據(jù)庫session隔離工作單元
Storm
Storm是一個介于單個或多個數(shù)據(jù)庫與Python之間映射對象的Python ORM。為了支持動態(tài)存儲和取回對象信息,它允許開發(fā)者構(gòu)建跨數(shù)據(jù)表的復雜查詢。Stom中table class不需要是框架特定基類的子類 。每個table class是sqlobject.SQLObject的子類。
優(yōu)點:
清爽輕量的API,短學習曲線和長期可維護性
不需要特殊的類構(gòu)造函數(shù),也沒有必要的基類
缺點:
迫使程序員手工寫表格創(chuàng)建的DDL語句,而不是從模型類自動派生
Storm的貢獻者必須把他們的貢獻的版權(quán)給Canonical公司
Django's ORM
因為Django的ORM 是緊嵌到web框架的,所以就算可以也不推薦,在一個獨立的非Django的Python項目中使用它的ORM。
Django,一個最流行的Python web框架, 有它獨有的ORM。 相比 SQLAlchemy, Django的ORM更吻合于直接操作SQL對象,操作暴露了簡單直接映射數(shù)據(jù)表和Python類的SQL對象 。
優(yōu)點:
易用,學習曲線短
和Django緊密集合,用Django時使用約定俗成的方法去操作數(shù)據(jù)庫
缺點:
不好處理復雜的查詢,強制開發(fā)者回到原生SQL
緊密和Django集成,使得在Django環(huán)境外很難使用
peewee
優(yōu)點:
Django式的API,使其易用
輕量實現(xiàn),很容易和任意web框架集成
缺點:
不支持自動化 schema 遷移
多對多查詢寫起來不直觀
SQLAlchemy
SQLAlchemy采用了數(shù)據(jù)映射模式,其工作單元主要使得有必要限制所有的數(shù)據(jù)庫操作代碼到一個特定的數(shù)據(jù)庫session,在該session中控制每個對象的生命周期 。
優(yōu)點:
企業(yè)級API,使得代碼有健壯性和適應性
靈活的設計,使得能輕松寫復雜查詢
缺點:
工作單元概念不常見
重量級API,導致長學習曲線
總結(jié)
相比其他的ORM,SQLAlchemy意味著,無論你何時寫SQLAlchemy代碼, 都專注于工作單元的前沿概念 。DB Session的概念可能最初很難理解和正確使用,但是后來你會欣賞這額外的復雜性,這讓意外的時序提交相關(guān)的數(shù)據(jù)庫bug減少到0。在SQLAlchemy中處理多數(shù)據(jù)庫是棘手的,因為每個DB session都限定了一個數(shù)據(jù)庫連接。但是,這種類型的限制實際上是好事, 因為這樣強制你絞盡腦汁去想在多個數(shù)據(jù)庫之間的交互, 從而使得數(shù)據(jù)庫交互代碼很容易調(diào)試。
上述就是小編為大家分享的python有哪些 orm框架了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道。