Python數(shù)據(jù)庫及ORM框架對比選擇
使用Python進行MySQL的庫主要有三個:
Python-MySQL(更熟悉的名字可能是MySQLdb)
PyMySQL
SQLAlchemy
?
Python-MySQL:
資格最老,核心由C語言打造,接口精煉,性能最棒,缺點是環(huán)境依賴較多,安裝復(fù)雜,近兩年已停止更新,
只支持Python2,不支持Python3,所以使用會越來越少
PyMySQL:
為替代Python-MySQL而生,純python打造,
接口與Python-MySQL兼容,安裝方便,支持Python3。
SQLAlchemy:
是一個ORM框架,它并不提供底層的數(shù)據(jù)庫操作,
而是要借助于MySQLdb、PyMySQL等第三方庫來完成,目前SQLAlchemy在Web編程領(lǐng)域應(yīng)用廣泛。
其中ORM種類有下面幾種:
Django’s ORM、peewee、SQLAlchemy
Django’s ORM
優(yōu)點:
? ? 易用,學(xué)習(xí)曲線短
? ? 和Django緊密集合,用Django時使用約定俗成的方法去操作數(shù)據(jù)庫
缺點:
? ? QuerySet速度不給力,會逼我用Mysqldb來操作原生sql語句。
Peewee
優(yōu)點:
Django式的API,使其易用
輕量實現(xiàn),很容易和任意web框架集成
?
缺點:
不支持自動化 schema 遷移
不能像Django那樣,使線上的mysql表結(jié)構(gòu)生成結(jié)構(gòu)化的模型。
?SQLAlchemy
優(yōu)點:
巨牛逼的API,使得代碼有健壯性和適應(yīng)性
靈活的設(shè)計,使得能輕松寫復(fù)雜查詢
?
缺點:
工作單元概念不常見
標(biāo)簽: