最近正好在尋求一種Python的數據庫ORM (Object Relational Mapper),SQLAlchemy (項目主頁)這個開源項目進入了我的視線,本來想嘗試著使用Django的ORM模塊的,無奈Django的模塊聯系比較緊密,沒能單獨分拆下來,一定程度上說明Django自成體系的生態系統在給我們帶來快速便捷的開發環境的同時犧牲了組裝的靈活性。
初次學習,也沒實質感覺到SQLAlchemy的好處,不過看其介紹的很多大公司均采用該項目,而且其支持的數據庫還是蠻豐富的,所以我覺得花點時間研究還是值得的。不過令人遺憾的是關于SQLAlchemy的中文資料比較少,所以對于我們這種英語不佳的帶來了一定的麻煩。
研究一個項目最好的辦法就是閱讀其官方提供的說明文檔,當然很輕松就找到了SQLAlchemy的文檔 (0.7)。文檔的格式和大多數項目一樣,有下載安裝說明,有示例,有快速上手教程。不過我還是習慣下載個PDF慢慢研究。
下面就將我近期的閱讀學習做個筆記,當然這個僅供參考,里面可能有自己的一些猜測和想法,不作權威依據,不當之處還希望指出。
1. 安裝SQLAlchemy
安裝部分不打算詳細介紹,可以通過easy_install或者pip進行安裝,命令如下:
代碼如下:easy_install SQLAlchemy
# 或者
pip install SQLAlchemy
當然我使用的是Windows環境,所以傾向于使用setup.py安裝,下載壓縮包,解壓,然后命令提示符下切換到該目錄,再運行下面的命令:
代碼如下:
python setup.py install
這里需要注意的是默認安裝會編譯安裝C擴展,這些C擴展將直接編譯為二進制本機代碼然后為SQLAlchemy處理數據集加速,這個是很不錯的功能,遺憾的是Windows下提示編譯安裝擴展失敗,當然這不影響SQLAlchemy的使用,只是作為性能上的優化,本機開發環境可以不需要這些擴展,如果不需要可以嘗試下面的命令:
代碼如下:
pip install --global-option='--without-cextensions' SQLAlchemy
# 或者setup.py方式
python setup.py --without-cextensions install
好了,到這里安裝部分我就簡單介紹完了,如果對這部分感興趣的話可以移步文檔。
最后可以檢驗一下安裝成果:
代碼如下:
>>> import sqlalchemy
>>> sqlalchemy.__version__
0.7.0
2. 簡單的查詢
就像任何新語言都是從萬能的'Hello World'開始一樣,先簡單體驗一把SQLAlchemy,由于SQLAlchemy是管理數據庫的,所以我們需要一個數據庫,自從用了Python以后,一提到數據庫,拿來做實驗的首當其沖的就是Python自帶的SQLite3,這次我們連SQLite的數據庫文件都不需要指定了,直接創建一份基于內存的數據庫,也就是說數據文件存放在內存中,便于我們下面的測試。
我們使用create_engine創建數據庫連接引擎:
新聞熱點
疑難解答